From 47d87608f58c4d5ee75273b2b69c9c50fdb35b3f Mon Sep 17 00:00:00 2001 From: GitHub Action <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 1 Jan 2024 01:01:22 +0000 Subject: [PATCH] Deploy gh-pages: 10ae32d1 ~ Add post `Remembering Satyajit Ray` --- .all-contributorsrc | 45 - .github/FUNDING.yml | 12 - .github/ISSUE_TEMPLATE/bug_report.md | 38 - .github/ISSUE_TEMPLATE/feature_request.md | 20 - .github/stale.yml | 18 - .github/workflows/deploy-docker-tag.yml | 40 - .github/workflows/deploy-image.yml | 31 - .github/workflows/deploy.yml | 44 - _bibliography/papers.bib => .nojekyll | 0 .pre-commit-config.yaml | 10 - 404.html | 25 +- Gemfile | 24 - _config.yml | 372 - _data/coauthors.yml | 0 _data/cv.yml | 91 - _data/repositories.yml | 0 _data/venues.yml | 6 - _includes/cv/list.html | 5 - _includes/cv/map.html | 8 - _includes/cv/nested_list.html | 14 - _includes/cv/time_table.html | 59 - _includes/disqus.html | 13 - _includes/figure.html | 36 - _includes/footer.html | 27 - _includes/giscus.html | 27 - _includes/head.html | 39 - _includes/header.html | 120 - _includes/metadata.html | 202 - _includes/news.html | 31 - _includes/pagination.html | 17 - _includes/projects.html | 36 - _includes/projects_horizontal.html | 40 - _includes/repository/repo.html | 14 - _includes/repository/repo_user.html | 6 - _includes/scripts/analytics.html | 21 - _includes/scripts/bootstrap.html | 9 - _includes/scripts/jquery.html | 4 - _includes/scripts/masonry.html | 6 - _includes/scripts/mathjax.html | 12 - _includes/scripts/misc.html | 14 - _includes/scripts/progressBar.html | 80 - _includes/selected_papers.html | 5 - _includes/social.html | 96 - _layouts/about.html | 74 - _layouts/archive-category.html | 27 - _layouts/archive-tag.html | 27 - _layouts/archive-year.html | 27 - _layouts/bib.html | 199 - _layouts/cv.html | 35 - _layouts/default.html | 37 - _layouts/distill.html | 128 - _layouts/none.html | 1 - _layouts/page.html | 16 - _layouts/post.html | 51 - _pages/index.md | 28 - _pages/projects.md | 19 - _pages/resume.md | 9 - _plugins/external-posts.rb | 36 - _plugins/hideCustomBibtex.rb | 15 - _posts/2020-03-05-remembering-satyajit-ray.md | 41 - _projects/cyclotron.md | 573 - _sass/_base.scss | 784 - _sass/_distill.scss | 126 - _sass/_layout.scss | 52 - _sass/_themes.scss | 63 - _sass/_variables.scss | 41 - assets/css/main.css | 4 + assets/css/main.css.map | 1 + assets/css/main.scss | 15 - assets/img/posts/satyajit-ray-1400.webp | Bin 0 -> 147844 bytes assets/img/posts/satyajit-ray-480.webp | Bin 0 -> 37980 bytes assets/img/posts/satyajit-ray-800.webp | Bin 0 -> 83636 bytes assets/img/preview-1400.webp | Bin 0 -> 37784 bytes assets/img/preview-480.webp | Bin 0 -> 11400 bytes assets/img/preview-800.webp | Bin 0 -> 26080 bytes assets/img/projects/cyclotron/fig1-1400.webp | Bin 0 -> 43424 bytes assets/img/projects/cyclotron/fig1-480.webp | Bin 0 -> 28096 bytes assets/img/projects/cyclotron/fig1-800.webp | Bin 0 -> 36668 bytes assets/img/projects/cyclotron/fig2-1400.webp | Bin 0 -> 142198 bytes assets/img/projects/cyclotron/fig2-480.webp | Bin 0 -> 65450 bytes assets/img/projects/cyclotron/fig2-800.webp | Bin 0 -> 106864 bytes assets/img/projects/cyclotron/fig3-1400.webp | Bin 0 -> 76912 bytes assets/img/projects/cyclotron/fig3-480.webp | Bin 0 -> 30172 bytes assets/img/projects/cyclotron/fig3-800.webp | Bin 0 -> 56816 bytes assets/img/projects/cyclotron/fig4-1400.webp | Bin 0 -> 29068 bytes assets/img/projects/cyclotron/fig4-480.webp | Bin 0 -> 10160 bytes assets/img/projects/cyclotron/fig4-800.webp | Bin 0 -> 20966 bytes assets/img/projects/cyclotron/fig5-1400.webp | Bin 0 -> 18960 bytes assets/img/projects/cyclotron/fig5-480.webp | Bin 0 -> 9236 bytes assets/img/projects/cyclotron/fig5-800.webp | Bin 0 -> 14388 bytes .../img/projects/cyclotron/graph1-1400.webp | Bin 0 -> 23726 bytes assets/img/projects/cyclotron/graph1-480.webp | Bin 0 -> 11108 bytes assets/img/projects/cyclotron/graph1-800.webp | Bin 0 -> 18964 bytes .../img/projects/cyclotron/graph2-1400.webp | Bin 0 -> 17226 bytes assets/img/projects/cyclotron/graph2-480.webp | Bin 0 -> 7722 bytes assets/img/projects/cyclotron/graph2-800.webp | Bin 0 -> 13542 bytes assets/img/rohandebsarkar-1400.webp | Bin 0 -> 22846 bytes assets/img/rohandebsarkar-480.webp | Bin 0 -> 11278 bytes assets/img/rohandebsarkar-800.webp | Bin 0 -> 19002 bytes assets/js/common.js | 18 +- assets/js/dark_mode.js | 9 +- assets/js/distillpub/overrides.js | 25 +- assets/js/distillpub/template.v2.js | 9314 +---------- assets/js/distillpub/transforms.v2.js | 13248 +--------------- assets/js/masonry.js | 13 +- assets/js/theme.js | 84 +- assets/js/zoom.js | 9 +- bin/cibuild | 1 - bin/deploy | 116 - bin/docker_build_image.sh | 5 - bin/docker_run.sh | 8 - bin/dockerhub_run.sh | 8 - blog/2020/index.html | 17 + blog/2020/remembering-satyajit-ray/index.html | 16 + blog/index.html | 117 +- blog/tag/birth-centenary/index.html | 17 + blog/tag/manik-da/index.html | 17 + blog/tag/satyajit-ray/index.html | 17 + blog/tag/tribute/index.html | 17 + feed.xml | 1 + index.html | 17 + projects/cyclotron/index.html | 47 + projects/index.html | 17 + resume/index.html | 17 + robots.txt | 5 +- sitemap.txt | 27 +- sitemap.xml | 38 + 127 files changed, 429 insertions(+), 26962 deletions(-) delete mode 100644 .all-contributorsrc delete mode 100644 .github/FUNDING.yml delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md delete mode 100644 .github/stale.yml delete mode 100644 .github/workflows/deploy-docker-tag.yml delete mode 100644 .github/workflows/deploy-image.yml delete mode 100644 .github/workflows/deploy.yml rename _bibliography/papers.bib => .nojekyll (100%) delete mode 100644 .pre-commit-config.yaml delete mode 100644 Gemfile delete mode 100644 _config.yml delete mode 100644 _data/coauthors.yml delete mode 100644 _data/cv.yml delete mode 100644 _data/repositories.yml delete mode 100644 _data/venues.yml delete mode 100644 _includes/cv/list.html delete mode 100644 _includes/cv/map.html delete mode 100644 _includes/cv/nested_list.html delete mode 100644 _includes/cv/time_table.html delete mode 100644 _includes/disqus.html delete mode 100644 _includes/figure.html delete mode 100644 _includes/footer.html delete mode 100644 _includes/giscus.html delete mode 100644 _includes/head.html delete mode 100644 _includes/header.html delete mode 100644 _includes/metadata.html delete mode 100644 _includes/news.html delete mode 100644 _includes/pagination.html delete mode 100644 _includes/projects.html delete mode 100644 _includes/projects_horizontal.html delete mode 100644 _includes/repository/repo.html delete mode 100644 _includes/repository/repo_user.html delete mode 100644 _includes/scripts/analytics.html delete mode 100644 _includes/scripts/bootstrap.html delete mode 100644 _includes/scripts/jquery.html delete mode 100644 _includes/scripts/masonry.html delete mode 100644 _includes/scripts/mathjax.html delete mode 100644 _includes/scripts/misc.html delete mode 100644 _includes/scripts/progressBar.html delete mode 100644 _includes/selected_papers.html delete mode 100644 _includes/social.html delete mode 100644 _layouts/about.html delete mode 100644 _layouts/archive-category.html delete mode 100644 _layouts/archive-tag.html delete mode 100644 _layouts/archive-year.html delete mode 100644 _layouts/bib.html delete mode 100644 _layouts/cv.html delete mode 100644 _layouts/default.html delete mode 100644 _layouts/distill.html delete mode 100644 _layouts/none.html delete mode 100644 _layouts/page.html delete mode 100644 _layouts/post.html delete mode 100644 _pages/index.md delete mode 100644 _pages/projects.md delete mode 100644 _pages/resume.md delete mode 100644 _plugins/external-posts.rb delete mode 100644 _plugins/hideCustomBibtex.rb delete mode 100644 _posts/2020-03-05-remembering-satyajit-ray.md delete mode 100644 _projects/cyclotron.md delete mode 100644 _sass/_base.scss delete mode 100644 _sass/_distill.scss delete mode 100644 _sass/_layout.scss delete mode 100644 _sass/_themes.scss delete mode 100644 _sass/_variables.scss create mode 100644 assets/css/main.css create mode 100644 assets/css/main.css.map delete mode 100644 assets/css/main.scss create mode 100644 assets/img/posts/satyajit-ray-1400.webp create mode 100644 assets/img/posts/satyajit-ray-480.webp create mode 100644 assets/img/posts/satyajit-ray-800.webp create mode 100644 assets/img/preview-1400.webp create mode 100644 assets/img/preview-480.webp create mode 100644 assets/img/preview-800.webp create mode 100644 assets/img/projects/cyclotron/fig1-1400.webp create mode 100644 assets/img/projects/cyclotron/fig1-480.webp create mode 100644 assets/img/projects/cyclotron/fig1-800.webp create mode 100644 assets/img/projects/cyclotron/fig2-1400.webp create mode 100644 assets/img/projects/cyclotron/fig2-480.webp create mode 100644 assets/img/projects/cyclotron/fig2-800.webp create mode 100644 assets/img/projects/cyclotron/fig3-1400.webp create mode 100644 assets/img/projects/cyclotron/fig3-480.webp create mode 100644 assets/img/projects/cyclotron/fig3-800.webp create mode 100644 assets/img/projects/cyclotron/fig4-1400.webp create mode 100644 assets/img/projects/cyclotron/fig4-480.webp create mode 100644 assets/img/projects/cyclotron/fig4-800.webp create mode 100644 assets/img/projects/cyclotron/fig5-1400.webp create mode 100644 assets/img/projects/cyclotron/fig5-480.webp create mode 100644 assets/img/projects/cyclotron/fig5-800.webp create mode 100644 assets/img/projects/cyclotron/graph1-1400.webp create mode 100644 assets/img/projects/cyclotron/graph1-480.webp create mode 100644 assets/img/projects/cyclotron/graph1-800.webp create mode 100644 assets/img/projects/cyclotron/graph2-1400.webp create mode 100644 assets/img/projects/cyclotron/graph2-480.webp create mode 100644 assets/img/projects/cyclotron/graph2-800.webp create mode 100644 assets/img/rohandebsarkar-1400.webp create mode 100644 assets/img/rohandebsarkar-480.webp create mode 100644 assets/img/rohandebsarkar-800.webp delete mode 100755 bin/cibuild delete mode 100755 bin/deploy delete mode 100755 bin/docker_build_image.sh delete mode 100755 bin/docker_run.sh delete mode 100755 bin/dockerhub_run.sh create mode 100644 blog/2020/index.html create mode 100644 blog/2020/remembering-satyajit-ray/index.html create mode 100644 blog/tag/birth-centenary/index.html create mode 100644 blog/tag/manik-da/index.html create mode 100644 blog/tag/satyajit-ray/index.html create mode 100644 blog/tag/tribute/index.html create mode 100644 feed.xml create mode 100644 index.html create mode 100644 projects/cyclotron/index.html create mode 100644 projects/index.html create mode 100644 resume/index.html create mode 100644 sitemap.xml diff --git a/.all-contributorsrc b/.all-contributorsrc deleted file mode 100644 index bc6a9103f7ea..000000000000 --- a/.all-contributorsrc +++ /dev/null @@ -1,45 +0,0 @@ -{ - "files": [ - "README.md" - ], - "imageSize": 100, - "commit": false, - "contributorsPerLine": 7, - "projectName": "al-folio", - "projectOwner": "alshedivat", - "repoType": "github", - "repoHost": "https://github.com", - "badgeTemplate": "[core_contributors]: https://img.shields.io/badge/core_contributors-<%= contributors.length %>-orange.svg 'Number of core contributors'", - "contributorTemplate": "\">\" width=\"<%= options.imageSize %>px;\" alt=\"\"/>
<%= contributor.name %>
", - "skipCi": true, - "contributors": [ - { - "login": "alshedivat", - "name": "Maruan", - "avatar_url": "https://avatars.githubusercontent.com/u/2126561?v=4", - "profile": "http://maruan.alshedivat.com", - "contributions": [ - "design", - "code" - ] - }, - { - "login": "rohandebsarkar", - "name": "Rohan Deb Sarkar", - "avatar_url": "https://avatars.githubusercontent.com/u/50144004?v=4", - "profile": "http://rohandebsarkar.github.io", - "contributions": [ - "code" - ] - }, - { - "login": "pourmand1376", - "name": "Amir Pourmand", - "avatar_url": "https://avatars.githubusercontent.com/u/32064808?v=4", - "profile": "https://amirpourmand.ir", - "contributions": [ - "code" - ] - } - ] -} diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index c78502f480c8..000000000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: alshedivat -tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # ['https://www.buymeacoffee.com/TkFxuKo'] diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 511f585150ba..000000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: bug -assignees: '' - ---- - -**Acknowledge the following** -- [ ] I carefully read and followed the [Getting Started](https://github.com/alshedivat/al-folio#getting-started) guide. -- [ ] I read through [FAQ](https://github.com/alshedivat/al-folio#faq) and searched through the [past issues](https://github.com/alshedivat/al-folio/issues), none of which addressed my issue. -- [ ] The issue I am raising is a potential bug in al-folio and not just a usage question.
[For usage questions, please post in the [Discussions](https://github.com/alshedivat/al-folio/discussions) instead of raising an issue.] - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**System (please complete the following information):** - - OS: [e.g. iOS] - - Browser (and its version) [e.g. chrome, safari] - - Jekyll version [e.g. 3.8.7] -- Ruby version [e.g. 2.6.5] - -**Additional context** -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 11fc491ef1da..000000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: enhancement -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index 8ec2004d8caa..000000000000 --- a/.github/stale.yml +++ /dev/null @@ -1,18 +0,0 @@ -# Number of days of inactivity before an issue becomes stale -daysUntilStale: 60 -# Number of days of inactivity before a stale issue is closed -daysUntilClose: 7 -# Issues with these labels will never be considered stale -exemptLabels: - - pinned - - security - - enhancement -# Label to use when marking an issue as stale -staleLabel: wontfix -# Comment to post when marking an issue as stale. Set to `false` to disable -markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. Thank you - for your contributions. -# Comment to post when closing a stale issue. Set to `false` to disable -closeComment: false diff --git a/.github/workflows/deploy-docker-tag.yml b/.github/workflows/deploy-docker-tag.yml deleted file mode 100644 index 3e6b6a3a169f..000000000000 --- a/.github/workflows/deploy-docker-tag.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Docker Image CI (Upload Tag) - -on: - push: - tags: - - 'v*' - -jobs: - - build: - - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Buildx - uses: docker/setup-buildx-action@v1 - - - - name: Docker meta - id: meta - uses: docker/metadata-action@v4 - with: - images: amirpourmand/al-folio - - - name: Login - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Build and push - uses: docker/build-push-action@v3 - with: - context: . - push: ${{ github.event_name != 'pull_request' }} - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - diff --git a/.github/workflows/deploy-image.yml b/.github/workflows/deploy-image.yml deleted file mode 100644 index b747dfc1d15c..000000000000 --- a/.github/workflows/deploy-image.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Docker Image CI - -on: - push: - branches: [ master ] - -jobs: - - build: - - runs-on: ubuntu-latest - if: github.repository_owner == 'alshedivat' - - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Buildx - uses: docker/setup-buildx-action@v1 - - - name: Login - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Build and push - uses: docker/build-push-action@v2 - with: - context: . - push: true - tags: amirpourmand/al-folio diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index f9d821252640..000000000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: deploy - -on: - push: - branches: - - master - - main - pull_request: - branches: - - master - - main - schedule: - - cron: '0 0 1 1 *' - -jobs: - deploy: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v3 - - name: Setup Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: '3.0.2' - bundler-cache: true - - name: Install deps - run: | - npm install -g mermaid.cli - - name: Setup deploy options - id: setup - run: | - git config --global user.name "GitHub Action" - git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" - if [[ ${GITHUB_REF} = refs/pull/*/merge ]]; then # pull request - echo "SRC_BRANCH=${GITHUB_HEAD_REF}" >> $GITHUB_OUTPUT - echo "NO_PUSH=--no-push" >> $GITHUB_OUTPUT - elif [[ ${GITHUB_REF} = refs/heads/* ]]; then # branch, e.g. master, source etc - echo "SRC_BRANCH=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT - fi - echo "DEPLOY_BRANCH=gh-pages" >> $GITHUB_OUTPUT - - name: Deploy website - run: yes | bash bin/deploy --verbose ${{ steps.setup.outputs.NO_PUSH }} - --src ${{ steps.setup.outputs.SRC_BRANCH }} - --deploy ${{ steps.setup.outputs.DEPLOY_BRANCH }} diff --git a/_bibliography/papers.bib b/.nojekyll similarity index 100% rename from _bibliography/papers.bib rename to .nojekyll diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml deleted file mode 100644 index ca7e46543084..000000000000 --- a/.pre-commit-config.yaml +++ /dev/null @@ -1,10 +0,0 @@ -# See https://pre-commit.com for more information -# See https://pre-commit.com/hooks.html for more hooks -repos: -- repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.3.0 - hooks: - - id: trailing-whitespace - - id: end-of-file-fixer - - id: check-yaml - - id: check-added-large-files diff --git a/404.html b/404.html index 0da4ee0bb54a..b0aa4593ae45 100644 --- a/404.html +++ b/404.html @@ -1,9 +1,16 @@ ---- -layout: page -permalink: /404.html -title: "Page not found" -description: "Looks like there has been a mistake. Nothing exists here." -redirect: true ---- - -

You will be redirected to the main page within 3 seconds. If not redirected, please click here.

+ Page not found • Rohan Deb Sarkar

Page not found

Looks like there has been a mistake. Nothing exists here.

You will be redirected to the main page within 3 seconds. If not redirected, please click here.

envelope linkedin github moon sun \ No newline at end of file diff --git a/Gemfile b/Gemfile deleted file mode 100644 index e502c22c0fd0..000000000000 --- a/Gemfile +++ /dev/null @@ -1,24 +0,0 @@ -source 'https://rubygems.org' -group :jekyll_plugins do - gem 'jekyll' - gem 'jekyll-archives' - gem 'jekyll-diagrams' - gem 'jekyll-email-protect' - gem 'jekyll-feed' - gem 'jekyll-fontawesome-svg' - gem 'jekyll-imagemagick' - gem 'jekyll-minifier' - gem 'jekyll-paginate-v2' - gem 'jekyll-scholar' - gem 'jekyll-sitemap' - gem 'jekyll-link-attributes' - # gem 'jekyll-twitter-plugin' - gem 'jemoji' - gem 'mini_racer' - gem 'unicode_utils' - gem 'webrick' -end -group :other_plugins do - gem 'httparty' - gem 'feedjira' -end diff --git a/_config.yml b/_config.yml deleted file mode 100644 index c494f552902e..000000000000 --- a/_config.yml +++ /dev/null @@ -1,372 +0,0 @@ -# ----------------------------------------------------------------------------- -# Site settings -# ----------------------------------------------------------------------------- - -title: blank # the website title (if blank, full name will be used instead) -first_name: Rohan Deb -middle_name: -last_name: Sarkar -email: rohandebsarkar@gmail.com -tagline: > - ``I believe in education as a weapon to make this world a better place for everyone.´´ -description: > # the ">" symbol means to ignore newlines until "footer_text:" - Rohan Deb Sarkar's portfolio website. -footer_text: > - Powered by Jekyll with al-folio theme • Hosted on GitHub Pages -keywords: rohandebsarkar # add your own keywords or leave empty - -lang: en # the language of your site (for example: en, fr, cn, ru, etc.) -icon: ⚛️ # the emoji used as the favicon (alternatively, provide image name in /assets/img/) -url: https://rohandebsarkar.github.io # the base hostname & protocol for your site -baseurl: /al-folio # the subpath of your site, e.g. /blog/ -last_updated: true # set to true if you want to display last updated in the footer -impressum_path: # set to path to include impressum link in the footer, use the same path as permalink in a page, helps to conform with EU GDPR - -# ----------------------------------------------------------------------------- -# Theme -# ----------------------------------------------------------------------------- - -# code highlighter theme -highlight_theme_light: github # https://github.com/jwarby/jekyll-pygments-themes -highlight_theme_dark: native # https://github.com/jwarby/jekyll-pygments-themes - -# repo color theme -repo_theme_light: default # https://github.com/anuraghazra/github-readme-stats/blob/master/themes/README.md -repo_theme_dark: dark # https://github.com/anuraghazra/github-readme-stats/blob/master/themes/README.md - -# ----------------------------------------------------------------------------- -# RSS Feed -# ----------------------------------------------------------------------------- -# will use title and url fields -# Take a look to https://github.com/jekyll/jekyll-feed for more customization - -rss_icon: false - -# ----------------------------------------------------------------------------- -# Layout -# ----------------------------------------------------------------------------- - -navbar_fixed: true -footer_fixed: true - -# Dimensions -max_width: 1024px - -# TODO: add layout settings (single page vs. multi-page) - -# ----------------------------------------------------------------------------- -# Open Graph & Schema.org -# ----------------------------------------------------------------------------- -# Display links to the page with a preview object on social media. -serve_og_meta: true # Include Open Graph meta tags in the HTML head -serve_schema_org: true # Include Schema.org in the HTML head -og_image: https://rohandebsarkar.github.io/assets/img/preview.png # The site-wide (default for all links) Open Graph preview image - -# ----------------------------------------------------------------------------- -# Social integration -# ----------------------------------------------------------------------------- - -github_username: rohandebsarkar # your GitHub user name -gitlab_username: # your GitLab user name -twitter_username: # your Twitter handle -mastodon_username: # your mastodon instance+username in the format instance.tld/@username -linkedin_username: rohandebsarkar # your LinkedIn user name -telegram_username: # your Telegram user name -scholar_userid: # your Google Scholar ID -semanticscholar_id: # your Semantic Scholar ID -whatsapp_number: # your WhatsApp number (full phone number in international format. Omit any zeroes, brackets, or dashes when adding the phone number in international format.) -orcid_id: # your ORCID ID -medium_username: # your Medium username -quora_username: # your Quora username -publons_id: # your ID on Publons -research_gate_profile: # your profile on ResearchGate -blogger_url: # your blogger URL -work_url: # work page URL -keybase_username: # your keybase user name -wikidata_id: # your wikidata id -dblp_url: # your DBLP profile url -stackoverflow_id: # your stackoverflow id -kaggle_id: # your kaggle id -lastfm_id: # your lastfm id -spotify_id: # your spotify id -pinterest_id: # your pinterest id -unsplash_id: # your unsplash id -instagram_id: # your instagram id -facebook_id: # your facebook id -youtube_id: # your youtube channel id (youtube.com/@) -discord_id: # your discord id (18-digit unique numerical identifier) - -contact_note: - -# ----------------------------------------------------------------------------- -# Analytics and search engine verification -# ----------------------------------------------------------------------------- - -google_analytics: # your Goole Analytics measurement ID (format: G-XXXXXXXXXX) -panelbear_analytics: # panelbear analytics site ID (format: XXXXXXXXX) -umami_analytics: c68261dd-f63a-4c2f-8b04-b3fd2ece91cb - -google_site_verification: _6BcW8Xcvk0bFQQs936d9jp-Q8XPS6FAiysiqLtwXUM # your google-site-verification ID (Google Search Console) -bing_site_verification: 559BBEE2736D83C5D065456D74AFE5CD # out your bing-site-verification ID (Bing Webmaster) - -# ----------------------------------------------------------------------------- -# Blog -# ----------------------------------------------------------------------------- - -blog_name: Blog # blog_name will be displayed in your blog page -blog_nav_title: Blog # your blog must have a title for it to be displayed in the nav bar -blog_description: Rohan Deb Sarkar's Blog -permalink: /blog/:year/:title/ - -# Pagination -pagination: - enabled: true - -# Giscus comments (RECOMMENDED) -# Follow instructions on https://giscus.app/ to setup for your repo to fill out -# the information below. -giscus: - repo: alshedivat/al-folio # / - repo_id: MDEwOlJlcG9zaXRvcnk2MDAyNDM2NQ== - category: Comments # name of the category under which discussions will be created - category_id: DIC_kwDOA5PmLc4CTBt6 - mapping: title # identify discussions by post title - strict: 1 # use strict identification mode - reactions_enabled: 1 # enable (1) or disable (0) emoji reactions - input_position: bottom # whether to display input form below (bottom) or above (top) the comments - theme: preferred_color_scheme # name of the color scheme (preferred works well with al-folio light/dark mode) - emit_metadata: 0 - lang: en - -# Disqus comments (DEPRECATED) -disqus_shortname: al-folio # put your disqus shortname -# https://help.disqus.com/en/articles/1717111-what-s-a-shortname - -# External sources. -# If you have blog posts published on medium.com or other exteranl sources, -# you can display them in your blog by adding a link to the RSS feed. -# external_sources: -# - name: medium.com -# rss_url: https://medium.com/@al-folio/feed - -# ----------------------------------------------------------------------------- -# Collections -# ----------------------------------------------------------------------------- - -collections: - news: - defaults: - layout: post - output: true - permalink: /news/:path/ - projects: - output: true - permalink: /projects/:path/ - -news_scrollable: true # adds a vertical scroll bar if there are more than 3 news items -news_limit: 5 # leave blank to include all the news in the `_news` folder - -# ----------------------------------------------------------------------------- -# Jekyll settings -# ----------------------------------------------------------------------------- - -# Markdown and syntax highlight -markdown: kramdown -highlighter: rouge -kramdown: - input: GFM - syntax_highlighter_opts: - css_class: 'highlight' - span: - line_numbers: false - block: - line_numbers: false - start_line: 1 - -# Includes & excludes -include: ['_pages'] -exclude: - - bin - - Gemfile - - Gemfile.lock - - vendor -keep_files: - - CNAME - - .nojekyll - - .git - -# Plug-ins -plugins: - - jekyll-archives - - jekyll-diagrams - - jekyll-email-protect - - jekyll-feed - - jekyll-imagemagick - - jekyll-minifier - - jekyll-paginate-v2 - - jekyll/scholar - - jekyll-sitemap - - jekyll-link-attributes - # - jekyll-twitter-plugin - - jemoji - -# Sitemap settings -defaults: - - scope: - path: "assets/**/*.*" - values: - sitemap: false - -# ----------------------------------------------------------------------------- -# Jekyll Minifier -# ----------------------------------------------------------------------------- - -jekyll-minifier: - exclude: ['robots.txt', 'sitemap.txt','sitemap.xml'] - uglifier_args: - harmony: true - -# ----------------------------------------------------------------------------- -# Jekyll Archives -# ----------------------------------------------------------------------------- - -jekyll-archives: - enabled: [year, tags, categories] # enables year, tag and category archives (remove if you need to disable one of them). - layouts: - year: archive-year - tag: archive-tag - category: archive-category - permalinks: - year: '/blog/:year/' - tag: '/blog/tag/:name/' - category: '/blog/category/:name/' - -display_tags: ['satyajit-ray', 'tribute' ] # this tags will be dispalyed on the front page of your blog - -# ----------------------------------------------------------------------------- -# Jekyll Scholar -# ----------------------------------------------------------------------------- - -scholar: - - last_name: # Einstein - first_name: # [Albert, A.] - - style: apa - locale: en - - source: /_bibliography/ - bibliography: papers.bib - bibliography_template: bib - # Note: if you have latex math in your bibtex, the latex filter - # preprocessing may conflict with MathJAX if the latter is enabled. - # See https://github.com/alshedivat/al-folio/issues/357. - bibtex_filters: [latex, smallcaps, superscript] - - replace_strings: true - join_strings: true - - details_dir: bibliography - details_layout: bibtex.html - details_link: Details - - query: "@*" - -# Filter out certain bibtex entry keywords used internally from the bib output -filtered_bibtex_keywords: [abbr, abstract, arxiv, bibtex_show, html, pdf, selected, supp, blog, code, poster, slides, website, preview, altmetric] - -# Maximum number of authors to be shown for each publication (more authors are visible on click) -max_author_limit: 3 # leave blank to always show all authors -more_authors_animation_delay: 10 # more authors are revealed on click using animation; smaller delay means faster animation - - -# ----------------------------------------------------------------------------- -# Jekyll Link Attributes -# ----------------------------------------------------------------------------- - -# These are the defaults -external_links: - enabled: true - rel: external nofollow noopener - target: _blank - exclude: - - -# ----------------------------------------------------------------------------- -# Responsive WebP Images -# ----------------------------------------------------------------------------- - -imagemagick: - enabled: true # enables responsive images for your site (recomended, see https://github.com/alshedivat/al-folio/issues/537) - widths: - - 480 - - 800 - - 1400 - input_directories: - - assets/img/ - input_formats: - - ".jpg" - - ".jpeg" - - ".png" - - ".tiff" - output_formats: - webp: "-resize 1024x" - -# ----------------------------------------------------------------------------- -# Jekyll Diagrams -# ----------------------------------------------------------------------------- - -jekyll-diagrams: - # configuration, see https://github.com/zhustec/jekyll-diagrams. - # feel free to comment out this section if not using jekyll diagrams. - - -# ----------------------------------------------------------------------------- -# Optional Features -# ----------------------------------------------------------------------------- - -enable_google_analytics: false # enables google analytics -enable_panelbear_analytics: false # enables panelbear analytics - -enable_umami_analytics: true # enables umami analytics -enable_bing_verification: true # enables bing site verification -enable_google_verification: true # enables google site verification - -enable_darkmode: true # enables switching between light/dark modes -enable_masonry: false # enables automatic project cards arangement -enable_material_design: false # enables material deisgn (uses MDBootstrap) -enable_math: true # enables math typesetting (uses MathJax) -enable_medium_zoom: false # enables image zoom feature (as on medium.com) -enable_navbar_social: true # enables displaying social links in the - # navbar on the about page -enable_progressbar: true # enables a horizontal progress bar linked to the vertical scroll position -enable_project_categories: true # enables categorization of projects into - # multiple categories -enable_tooltips: true # enables automatic tooltip links generated - # for each section titles on pages and posts -disable_jquery: true # disables jQuery -disable_bootstrap_js: true # disable Bootstrap JavaScript files - - -# ----------------------------------------------------------------------------- -# Library versions -# ----------------------------------------------------------------------------- - -academicons: - version: "1" -bootstrap: - version: "5" -fontawesome: - version: "6" -jquery: - version: "3" -mathjax: - version: "3" -masonry: - version: "4" -mdb: - version: "5" -medium_zoom: - version: "1" -umami: - script: https://perpetuus.vercel.app/motus.js diff --git a/_data/coauthors.yml b/_data/coauthors.yml deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/_data/cv.yml b/_data/cv.yml deleted file mode 100644 index c51044b7bbce..000000000000 --- a/_data/cv.yml +++ /dev/null @@ -1,91 +0,0 @@ -- title: General Information - type: map - contents: - - name: First Name - value: Rohan Deb - - name: Last Name - value: Sarkar - - name: Known Languages - value: বাংলা (Bangla), English - - -- title: Education - type: time_table - contents: - - title: Bachelor of Science (Honours) - Physics - institution: Ramakrishna Mission Vivekananda Centenary College, Rahara, Kolkata - year: Sep 2021 - 2024 - description: - - Major in Physics, with Mathematics and Computer Science as minor subject. - - - title: Senior Secondary (XII Standard) - institution: International Public School, Kolkata - year: Apr 2019 - Jun 2021 - description: - - Physical Sciences with Mathematics and Computer Science. - - - title: Secondary (X Standard) - institution: International Public School, Kolkata - year: Apr 2006 - Mar 2019 - description: - - -- title: Certifications - type: time_table - contents: - - title: 'PH526x: Using Python for Research' - institution: HarvardX by Harvard UniversityedX - year: Jun 2022 - Sep 2022 - description: - - 'Certificate: courses.edx.org/certificates/a161d26a7e8749ab99560b1e2718cffd' - - - title: 'QUAN11000: Introduction to Quantum Computing for Everyone' - institution: UChicagoX by The University of ChicagoedX - year: Jul 2022 - Aug 2022 - description: - - title: 'Certificate:' - contents: - - 'Course 1: courses.edx.org/certificates/9ccc69820111457ea233c635939a68bc' - - - title: '6.00.1x: Introduction to Computer Science and Programming Using Python' - institution: MITx by Massachussets Institute of TechnologyedX - year: Jun 2021 - Aug 2021 - description: - - 'Certificate: courses.edx.org/certificates/a123d05cecad4eaeb9e5ba55401c18ea' - - -- title: Scholarships - type: time_table - contents: - - title: Central Sector Scheme of Scholarships for College and University Students - institution: Department of Higher Education, Ministry of Education, Govt. of India - year: Apr 2022 - description: - - Scholarship amount of INR 10,000. - - - title: Letter of Scholarship - institution: International Public School, Kolkata - year: Sep 2019 - description: - - For excellent performance in academics for the session 2018-2019 (X Standard). - - -- title: Honors and Awards - type: time_table - contents: - - title: Appreciation Letter - institution: Minister of Science & Technology, Govt. of India - year: Jan 2020 - description: - - For participation as a student in the Guinness World Record for the “Largest astrophysics lesson” on the “applications of spectroscopy in astrophysics”. - - -- title: Other Interests - type: nested_list - contents: - - title: Hobbies - items: - - Coding and learning new programming languages. - - Surfing the internet to research on various topis of my interests. - - Contributing to various open source projects. - - Politics. diff --git a/_data/repositories.yml b/_data/repositories.yml deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/_data/venues.yml b/_data/venues.yml deleted file mode 100644 index 6c16ad5dcbdf..000000000000 --- a/_data/venues.yml +++ /dev/null @@ -1,6 +0,0 @@ -"AJP": - url: https://aapt.scitation.org/journal/ajp - color: "#00369f" - -"PhysRev": - url: https://journals.aps.org/ diff --git a/_includes/cv/list.html b/_includes/cv/list.html deleted file mode 100644 index 1fd28a79dcd9..000000000000 --- a/_includes/cv/list.html +++ /dev/null @@ -1,5 +0,0 @@ -
    - {% for content in entry.contents %} -
  • {{ content }}
  • - {% endfor %} -
\ No newline at end of file diff --git a/_includes/cv/map.html b/_includes/cv/map.html deleted file mode 100644 index 41e88ced377f..000000000000 --- a/_includes/cv/map.html +++ /dev/null @@ -1,8 +0,0 @@ - - {% for content in entry.contents %} - - - - - {% endfor %} -
{{ content.name }}{{ content.value }}
diff --git a/_includes/cv/nested_list.html b/_includes/cv/nested_list.html deleted file mode 100644 index 0ad5bef8cf6e..000000000000 --- a/_includes/cv/nested_list.html +++ /dev/null @@ -1,14 +0,0 @@ -
    - {% for content in entry.contents %} -
  • -
    {{ content.title }}
    - {% if content.items %} -
      - {% for subitem in content.items %} -
    • {{ subitem }}
    • - {% endfor %} -
    - {% endif %} -
  • - {% endfor %} -
\ No newline at end of file diff --git a/_includes/cv/time_table.html b/_includes/cv/time_table.html deleted file mode 100644 index f7aa9e1784a2..000000000000 --- a/_includes/cv/time_table.html +++ /dev/null @@ -1,59 +0,0 @@ -
    - {% for content in entry.contents %} -
  • -
    - {% if content.year %} -
    - - {{ content.year }} - -
    - {% endif %} -
    - {% if content.title %} -
    {{content.title}}
    - {% endif %} - {% if content.institution %} -
    {{content.institution}}
    - {% endif %} - {% if content.description %} -
      - {% for item in content.description %} -
    • - {% if item.contents %} - {{ item.title }} -
        - {% for subitem in item.contents %} -
      • {{ subitem }}
      • - {% endfor %} -
      - {% else %} - {{ item }} - {% endif %} -
    • - {% endfor %} -
    - {% endif %} - {% if content.items %} -
      - {% for item in content.items %} -
    • - {% if item.contents %} - {{ item.title }} -
        - {% for subitem in item.contents %} -
      • {{ subitem }}
      • - {% endfor %} -
      - {% else %} - {{ item }} - {% endif %} -
    • - {% endfor %} -
    - {% endif %} -
    -
    -
  • - {% endfor %} -
\ No newline at end of file diff --git a/_includes/disqus.html b/_includes/disqus.html deleted file mode 100644 index 73fe9538d0dc..000000000000 --- a/_includes/disqus.html +++ /dev/null @@ -1,13 +0,0 @@ -
- - -
diff --git a/_includes/figure.html b/_includes/figure.html deleted file mode 100644 index e67e8043f6c4..000000000000 --- a/_includes/figure.html +++ /dev/null @@ -1,36 +0,0 @@ -{%- assign img_path = include.path | remove: ".jpg" | remove: ".jpeg" | remove: ".png" | remove: ".tiff" -%} - -
- - - {% if site.imagemagick.enabled %} - {% for i in site.imagemagick.widths -%} - - {% endfor -%} - {% endif %} - - - - - - - {%- if include.caption -%}
{{ include.caption }}
{%- endif %} - -
diff --git a/_includes/footer.html b/_includes/footer.html deleted file mode 100644 index 73c5437932cc..000000000000 --- a/_includes/footer.html +++ /dev/null @@ -1,27 +0,0 @@ - {% if site.footer_fixed %} -
-
- © Copyright {{ site.time | date: '%Y' }} {{ site.first_name }} {{ site.middle_name }} {{ site.last_name }} - • {{ site.footer_text }} - {% if site.impressum_path %} - • Impressum - {% endif %} - {% if site.last_updated %} - • Last updated: {{ "now" | date_to_string }} - {% endif %} -
-
- {%- else -%} -
-
- © Copyright {{ site.time | date: '%Y' }} {{ site.first_name }} {{ site.middle_name }} {{ site.last_name }} - • {{ site.footer_text }} - {% if site.impressum_path %} - • Impressum - {% endif %} - {% if site.last_updated %} - • Last updated: {{ "now" | date_to_string }} - {% endif %} -
-
- {%- endif %} diff --git a/_includes/giscus.html b/_includes/giscus.html deleted file mode 100644 index bb504f64dbb8..000000000000 --- a/_includes/giscus.html +++ /dev/null @@ -1,27 +0,0 @@ -
- - -
diff --git a/_includes/head.html b/_includes/head.html deleted file mode 100644 index 2d0563ccc05a..000000000000 --- a/_includes/head.html +++ /dev/null @@ -1,39 +0,0 @@ - - {% include metadata.html %} - - - - - - {% unless page.permalink == '/' %} - - - {% endunless %} - - {% if site.enable_material_design %} - - - - {% endif %} - - - - - - - {% if site.icon.size < 3 %} - - {% elsif site.icon != blank %} - - {% endif %} - - - - - - {% if site.enable_darkmode %} - - - - - {% endif %} diff --git a/_includes/header.html b/_includes/header.html deleted file mode 100644 index ece598e36773..000000000000 --- a/_includes/header.html +++ /dev/null @@ -1,120 +0,0 @@ - -
- - - -{% if site.enable_progressbar %} - - -
- -
-
-{%- endif %} -
diff --git a/_includes/metadata.html b/_includes/metadata.html deleted file mode 100644 index 3cbdf961a12d..000000000000 --- a/_includes/metadata.html +++ /dev/null @@ -1,202 +0,0 @@ -{% if site.enable_google_verification or site.enable_bing_verification %} - - {% if site.enable_google_verification -%} - - {%- endif -%} - {% if site.enable_bing_verification -%} - - {%- endif -%} -{%- endif %} - - - - - - - {%- if site.title == "blank" -%} - {%- capture title -%}{{ site.first_name }} {{ site.middle_name }} {{ site.last_name }}{%- endcapture -%} - {%- else -%} - {%- capture title -%}{{ site.title }}{%- endcapture -%} - {%- endif -%} - {% if page.url == '/blog/index.html' %} - {{ site.blog_nav_title }} • {{ title }} - {%- elsif page.title != "blank" and page.url != "/" -%} - {%- if page.title == nil or page.title == "" -%} - {{ page.date | date: "%Y" }} • {{ title }} - {%- else -%} - {{ page.title }} • {{ title }} - {%- endif -%} - {%- else -%} - {{ title }} - {%- endif -%} - - - - - - {%- if page.keywords or site.keywords %} - -{%- endif %} - -{%- if site.serve_og_meta %} - - - - - - - - {% if page.og_image or site.og_image -%} - - {%- endif %} - - - - - - - {% if page.og_image or site.og_image -%} - - {%- endif %} - {% if site.twitter_username -%} - - - {%- endif %} -{%- endif %} - -{%- if site.serve_schema_org %} - - - {%- comment -%} Social links generator for "sameAs schema" {%- endcomment %} - {% assign sameaslinks = "" | split: "," %} - {%- if site.orcid_id -%} - {%- capture link -%}https://orcid.org/{{ site.orcid_id }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.scholar_userid -%} - {%- capture link -%}https://scholar.google.com/citations?user={{ site.scholar_userid }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.semanticscholar_id -%} - {%- capture link -%}https://www.semanticscholar.org/author/{{ site.semanticscholar_id }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.publons_id -%} - {%- capture link -%}https://publons.com/a/{{ site.publons_id }}/{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.research_gate_profile -%} - {%- capture link -%}https://www.researchgate.net/profile/{{site.research_gate_profile}}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.github_username -%} - {%- capture link -%}https://github.com/{{ site.github_username }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.telegram_username -%} - {%- capture link -%}https://telegram.me/{{ site.telegram_username }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.linkedin_username -%} - {%- capture link -%}https://www.linkedin.com/in/{{ site.linkedin_username }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.twitter_username -%} - {%- capture link -%}https://twitter.com/{{ site.twitter_username }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.medium_username -%} - {%- capture link -%}https://medium.com/@{{ site.medium_username }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.quora_username -%} - {%- capture link -%}https://www.quora.com/profile/{{ site.quora_username }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.blogger_url -%} - {%- capture link -%}{{ site.blogger_url }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.work_url -%} - {%- capture link -%}{{ site.work_url }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.wikidata_id -%} - {%- capture link -%}https://www.wikidata.org/wiki/{{ site.wikidata_id }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.strava_userid -%} - {%- capture link -%}https://www.strava.com/athletes/{{ site.strava_userid }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.keybase_username -%} - {%- capture link -%}https://keybase.io/{{ site.keybase_username }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.gitlab_username -%} - {%- capture link -%}https://gitlab.com/{{ site.gitlab_username }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.dblp_url -%} - {%- capture link -%}{{ site.dblp_url }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.stackoverflow_id -%} - {%- capture link -%}https://stackoverflow.com/users/{{ site.stackoverflow_id }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.kaggle_id -%} - {%- capture link -%}https://www.kaggle.com/{{ site.kaggle_id }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.lastfm_id -%} - {%- capture link -%}https://www.last.fm/user/{{ site.lastfm_id }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.spotify_id -%} - {%- capture link -%}https://open.spotify.com/user/{{ site.spotify_id }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.pinterest_id -%} - {%- capture link -%}https://www.pinterest.com/{{ site.pinterest_id }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.unsplash_id -%} - {%- capture link -%}https://unsplash.com/@{{ site.unsplash_id }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.instagram_id -%} - {%- capture link -%}https://instagram.com/{{ site.instagram_id }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.facebook_id -%} - {%- capture link -%}https://facebook.com/{{ site.facebook_id }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if site.discord_id -%} - {%- capture link -%}https://discord.com/users/{{ site.discord_id }}{%- endcapture -%} - {%- assign sameaslinks = sameaslinks | push: link -%} - {%- endif -%} - {%- if sameaslinks != blank -%} - {%- assign sameaslinks = sameaslinks | split: "" -%} - {%- endif -%} - - -{%- endif %} diff --git a/_includes/news.html b/_includes/news.html deleted file mode 100644 index a0e952722d84..000000000000 --- a/_includes/news.html +++ /dev/null @@ -1,31 +0,0 @@ - -
-

News

- {% if site.news != blank -%} - {%- assign news_size = site.news | size -%} -
3 %}style="max-height: 10vw"{% endif %}> - - {%- assign news = site.news | reverse -%} - {% if site.news_limit %} - {% assign news_limit = site.news_limit %} - {% else %} - {% assign news_limit = news_size %} - {% endif %} - {% for item in news limit: news_limit %} - - - - - {%- endfor %} -
{{ item.date | date: "%b %-d, %Y" }} - {% if item.inline -%} - {{ item.content | remove: '

' | remove: '

' | emojify }} - {%- else -%} - {{ item.title }} - {%- endif %} -
-
- {%- else -%} -

No news so far...

- {%- endif %} -
diff --git a/_includes/pagination.html b/_includes/pagination.html deleted file mode 100644 index 4b8d27e3aee1..000000000000 --- a/_includes/pagination.html +++ /dev/null @@ -1,17 +0,0 @@ -{%- if paginator.total_pages > 1 -%} - -{%- endif -%} diff --git a/_includes/projects.html b/_includes/projects.html deleted file mode 100644 index 0d2d9c0d4648..000000000000 --- a/_includes/projects.html +++ /dev/null @@ -1,36 +0,0 @@ - -
- \ No newline at end of file diff --git a/_includes/projects_horizontal.html b/_includes/projects_horizontal.html deleted file mode 100644 index 61ae9fbe32f1..000000000000 --- a/_includes/projects_horizontal.html +++ /dev/null @@ -1,40 +0,0 @@ -
- {%- if project.redirect -%} - - {%- else -%} - - {%- endif -%} - diff --git a/_includes/repository/repo.html b/_includes/repository/repo.html deleted file mode 100644 index a0881c0b022f..000000000000 --- a/_includes/repository/repo.html +++ /dev/null @@ -1,14 +0,0 @@ -{% assign repo_url = include.repository | split: '/' %} - -{% if site.data.repositories.github_users contains repo_url.first %} - {% assign show_owner = false %} -{% else %} - {% assign show_owner = true %} -{% endif %} - - diff --git a/_includes/repository/repo_user.html b/_includes/repository/repo_user.html deleted file mode 100644 index ae06a058fccc..000000000000 --- a/_includes/repository/repo_user.html +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/_includes/scripts/analytics.html b/_includes/scripts/analytics.html deleted file mode 100644 index ad62c9c8c150..000000000000 --- a/_includes/scripts/analytics.html +++ /dev/null @@ -1,21 +0,0 @@ -{%- if site.enable_google_analytics -%} - - - -{%- endif -%} -{%- if site.enable_panelbear_analytics -%} - - - -{%- endif -%} -{%- if site.enable_umami_analytics -%} - -{%- endif -%} diff --git a/_includes/scripts/bootstrap.html b/_includes/scripts/bootstrap.html deleted file mode 100644 index 487f0d48a201..000000000000 --- a/_includes/scripts/bootstrap.html +++ /dev/null @@ -1,9 +0,0 @@ -{% unless site.disable_bootstrap_js %} - - -{% endunless %} - -{% if site.enable_material_design %} - - -{% endif %} diff --git a/_includes/scripts/jquery.html b/_includes/scripts/jquery.html deleted file mode 100644 index 18292f8f2095..000000000000 --- a/_includes/scripts/jquery.html +++ /dev/null @@ -1,4 +0,0 @@ -{% unless site.disable_jquery %} - - -{% endunless %} diff --git a/_includes/scripts/masonry.html b/_includes/scripts/masonry.html deleted file mode 100644 index 804389d31ad3..000000000000 --- a/_includes/scripts/masonry.html +++ /dev/null @@ -1,6 +0,0 @@ - {%- if site.enable_masonry -%} - - - - - {%- endif -%} diff --git a/_includes/scripts/mathjax.html b/_includes/scripts/mathjax.html deleted file mode 100644 index 018eb8029703..000000000000 --- a/_includes/scripts/mathjax.html +++ /dev/null @@ -1,12 +0,0 @@ - {%- if site.enable_math and page.enable_math -%} - - - - - {%- endif %} diff --git a/_includes/scripts/misc.html b/_includes/scripts/misc.html deleted file mode 100644 index fa65a74bf921..000000000000 --- a/_includes/scripts/misc.html +++ /dev/null @@ -1,14 +0,0 @@ -{% if site.enable_tooltips %} - - -{%- endif %} -{%- if site.enable_medium_zoom %} - - - -{%- endif -%} - - - diff --git a/_includes/scripts/progressBar.html b/_includes/scripts/progressBar.html deleted file mode 100644 index 88bb73cd35e4..000000000000 --- a/_includes/scripts/progressBar.html +++ /dev/null @@ -1,80 +0,0 @@ -{% if site.enable_progressbar %} - - - - -{%- endif %} diff --git a/_includes/selected_papers.html b/_includes/selected_papers.html deleted file mode 100644 index 831d4636dcd7..000000000000 --- a/_includes/selected_papers.html +++ /dev/null @@ -1,5 +0,0 @@ - -
-

Selected Publications

- {% bibliography -f papers -q @*[selected=true]* %} -
diff --git a/_includes/social.html b/_includes/social.html deleted file mode 100644 index 4f7a17b04ba2..000000000000 --- a/_includes/social.html +++ /dev/null @@ -1,96 +0,0 @@ - {%- if site.email -%} - - {% endif %} - {%- if site.telegram_username -%} - - {% endif %} - {%- if site.whatsapp_number -%} - - {% endif %} - {%- if site.orcid_id -%} - - {% endif %} - {%- if site.scholar_userid -%} - - {% endif %} - {%- if site.semanticscholar_id -%} - - {% endif %} - {%- if site.publons_id -%} - - {% endif %} - {%- if site.research_gate_profile -%} - - {% endif %} - {%- if site.linkedin_username -%} - {% fa_svg fab.fa-linkedin %} - {% endif %} - {%- if site.github_username -%} - {% fa_svg fab.fa-github %} - {% endif %} - {%- if site.twitter_username -%} - {% fa_svg fab.fa-twitter %} - {% endif %} - {%- if site.mastodon_username -%} - - {% endif %} - {%- if site.medium_username -%} - {% fa_svg fab.fa-medium %} - {% endif %} - {%- if site.quora_username -%} - {% fa_svg fab.fa-quora %} - {% endif %} - {%- if site.blogger_url -%} - {% fa_svg fab.fa-blogger %} - {% endif %} - {%- if site.work_url -%} - {% fa_svg fas.fa-briefcase %} - {% endif %} - {%- if site.wikidata_id -%} - {% fa_svg fas.fa-barcode %} - {% endif %} - {%- if site.strava_userid -%} - {% fa_svg fab.fa-strava %} - {% endif %} - {%- if site.keybase_username -%} - {% fa_svg fab.fa-keybase %} - {% endif %} - {%- if site.gitlab_username -%} - {% fa_svg fab.fa-gitlab %} - {% endif %} - {%- if site.dblp_url -%} - - {% endif %} - {%- if site.stackoverflow_id -%} - {% fa_svg fab.fa-stack-overflow %} - {% endif %} - {%- if site.kaggle_id -%} - {% fa_svg fab.fa-kaggle %} - {% endif %} - {%- if site.lastfm_id -%} - {% fa_svg fab.fa-lastfm %} - {% endif %} - {%- if site.spotify_id -%} - {% fa_svg fab.fa-spotify %} - {% endif %} - {%- if site.pinterest_id -%} - {% fa_svg fab.fa-pinterest %} - {% endif %} - {%- if site.unsplash_id -%} - Unsplash - {% endif %} - {%- if site.instagram_id -%} - {% fa_svg fab.fa-instagram %} - {% endif %} - {%- if site.facebook_id -%} - {% fa_svg fab.fa-facebook %} - {% endif %} - {%- if site.youtube_id -%} - - {% endif %} - {%- if site.discord_id -%} - {% fa_svg fab.fa-discord %} - {% endif %} - {%- if site.rss_icon -%} - {% fa_svg fas.fa-rss-square %} - {% endif %} diff --git a/_layouts/about.html b/_layouts/about.html deleted file mode 100644 index fe5c790e8c4d..000000000000 --- a/_layouts/about.html +++ /dev/null @@ -1,74 +0,0 @@ ---- -layout: default ---- - - -
-
-

- {% if site.title == "blank" -%}{{ site.first_name }} {{ site.middle_name }} {{ site.last_name }}{%- else -%}{{ site.title }}{%- endif %} -

-

{{ page.subtitle }}

-
- -
- {% if page.profile -%} -
- {%- if page.profile.svg -%} - {%- assign profile_svg_path = page.profile.svg | prepend: 'assets/svg/' -%} - - - {%- elsif page.profile.image %} - {%- assign profile_image_path = page.profile.image | prepend: 'assets/img/' -%} - - {% if page.profile.image_circular %} - {%- assign profile_image_class = "img-fluid z-depth-1 rounded-circle" -%} - {% else %} - {%- assign profile_image_class = "img-fluid z-depth-1 rounded" -%} - {% endif %} - - {% include figure.html - path=profile_image_path - class=profile_image_class - alt=page.profile.image -%} - {% endif -%} - {%- if page.profile.address %} -
- {{ page.profile.address }} -
- {%- endif %} -
- {%- endif %} - -
- {{ content }} -
- -
- {{ site.tagline }} -
- - {% if page.news -%} - - {%- include news.html %} - {%- endif %} - {% if page.selected_papers -%} - - {%- include selected_papers.html %} - {%- endif %} - {%- if page.social %} - - - {%- endif %} -
- -
diff --git a/_layouts/archive-category.html b/_layouts/archive-category.html deleted file mode 100644 index 23a87d7985e1..000000000000 --- a/_layouts/archive-category.html +++ /dev/null @@ -1,27 +0,0 @@ ---- -layout: default ---- - -
- -
-

🏷 {{ page.title }}

-

an archive of posts in this category

-
- -
-
- - {% for post in page.posts %} - - - - - {% endfor %} -
{{ post.date | date: "%b %-d, %Y" }} - {{ post.title }} -
-
-
- -
diff --git a/_layouts/archive-tag.html b/_layouts/archive-tag.html deleted file mode 100644 index 165ba349dbe8..000000000000 --- a/_layouts/archive-tag.html +++ /dev/null @@ -1,27 +0,0 @@ ---- -layout: default ---- - -
- -
-

# {{ page.title }}

-

an archive of posts with this tag

-
- -
-
- - {% for post in page.posts %} - - - - - {% endfor %} -
{{ post.date | date: "%b %-d, %Y" }} - {{ post.title }} -
-
-
- -
diff --git a/_layouts/archive-year.html b/_layouts/archive-year.html deleted file mode 100644 index a4414f160ad1..000000000000 --- a/_layouts/archive-year.html +++ /dev/null @@ -1,27 +0,0 @@ ---- -layout: default ---- - -
- -
-

{{ page.date | date: "%Y" }}

-

an archive of posts from this year

-
- -
-
- - {% for post in page.posts %} - - - - - {% endfor %} -
{{ post.date | date: "%b %-d, %Y" }} - {{ post.title }} -
-
-
- -
diff --git a/_layouts/bib.html b/_layouts/bib.html deleted file mode 100644 index b00902c45496..000000000000 --- a/_layouts/bib.html +++ /dev/null @@ -1,199 +0,0 @@ ---- ---- - -
-
- {%- if entry.preview -%} - {% if entry.preview contains '://' -%} - - {%- else -%} - - {%- endif -%} - {%- elsif entry.abbr -%} - {%- if site.data.venues[entry.abbr] -%} - {{entry.abbr}} - {%- else -%} - {{entry.abbr}} - {%- endif -%} - {%- endif -%} -
- - -
- -
{{entry.title}}
- -
- {% assign author_array_size = entry.author_array | size %} - - {% assign author_array_limit = author_array_size %} - {%- if site.max_author_limit and author_array_size > site.max_author_limit %} - {% assign author_array_limit = site.max_author_limit %} - {% endif %} - - {%- for author in entry.author_array limit: author_array_limit -%} - {%- assign author_is_self = false -%} - {%- assign author_last_name = author.last | remove: "¶" | remove: "&" | remove: "*" | remove: "†" | remove: "^" -%} - {%- if site.scholar.last_name contains author_last_name -%} - {%- if site.scholar.first_name contains author.first -%} - {%- assign author_is_self = true -%} - {%- endif -%} - {%- endif -%} - {%- assign coauthor_url = nil -%} - {%- if site.data.coauthors[author_last_name] -%} - {%- for coauthor in site.data.coauthors[author_last_name] -%} - {%- if coauthor.firstname contains author.first -%} - {%- assign coauthor_url = coauthor.url -%} - {%- break -%} - {%- endif -%} - {%- endfor -%} - {%- endif -%} - - {%- if forloop.length > 1 -%} - {%- if forloop.first == false -%}, {%- endif -%} - {%- if forloop.last and author_array_limit == author_array_size -%}and {%- endif -%} - {%- endif -%} - {%- if author_is_self -%} - {{author.first}} {{author.last}} - {%- else -%} - {%- if coauthor_url -%} - {{author.first}} {{author.last}} - {%- else -%} - {{author.first}} {{author.last}} - {%- endif -%} - {%- endif -%} - {%- endfor -%} - {%- assign more_authors = author_array_size | minus: author_array_limit -%} - - {%- assign more_authors_hide = more_authors | append: " more author" -%} - {%- if more_authors > 0 -%} - {%- if more_authors > 1 -%} - {%- assign more_authors_hide = more_authors_hide | append: "s" -%} - {%- endif -%} - {%- assign more_authors_show = '' -%} - {%- for author in entry.author_array offset: author_array_limit -%} - {%- assign more_authors_show = more_authors_show | append: author.first | append: " " | append: author.last -%} - {%- unless forloop.last -%} - {%- assign more_authors_show = more_authors_show | append: ", " -%} - {%- endunless -%} - {%- endfor -%} - , and - {{more_authors_hide}} - {%- endif -%} - -
- - - {% assign proceedings = "inproceedings,incollection" | split: ','%} - {% assign thesis = "thesis,mastersthesis,phdthesis" | split: ','%} - {% if entry.type == "article" -%} - {%- capture entrytype -%}{{entry.journal}}{%- endcapture -%} - {%- elsif proceedings contains entry.type -%} - {%- capture entrytype -%}In {{entry.booktitle}} {%- endcapture -%} - {%- elsif thesis contains entry.type -%} - {%- capture entrytype -%}{{entry.school}} {%- endcapture -%} - {%- else -%} - {%- capture entrytype -%}{%- endcapture -%} - {%- endif -%} - {%- if entry.month -%} - {%- capture entrymonth -%}{{ " " }}{{ entry.month | capitalize }}{%- endcapture -%} - {%- endif -%} - {%- if entry.year -%} - {%- capture entryyear -%}{{ " " }}{{entry.year}}{%- endcapture -%} - {%- endif -%} - {% assign entrytype_text = entrytype | strip_html | strip %} - {%- capture periodical -%}{{ entrytype }}{%- if entrytype_text != "" and entryyear != "" -%}, {%- endif -%}{{ entrymonth }}{{ entryyear }}{%- endcapture -%} -
- {{ periodical | strip }} -
-
- {{ entry.note | strip }} -
- - - - - {% if entry.abstract -%} - - - {%- endif -%} - - {% if entry.bibtex_show -%} - - - {%- endif %} -
-
diff --git a/_layouts/cv.html b/_layouts/cv.html deleted file mode 100644 index c906d35df218..000000000000 --- a/_layouts/cv.html +++ /dev/null @@ -1,35 +0,0 @@ ---- -layout: default ---- - -
- -
-

{{ page.title }} {% if page.cv_pdf %}[pdf]{% endif %}

-

{{ page.description }}

-
- -
-
- {% for entry in site.data.cv %} -
-

{{ entry.title }}

-
- {% if entry.type == "list" %} - {% include cv/list.html %} - {% elsif entry.type == "map" %} - {% include cv/map.html %} - {% elsif entry.type == "nested_list" %} - {% include cv/nested_list.html %} - {% elsif entry.type == "time_table" %} - {% include cv/time_table.html %} - {% else %} - {{ entry.contents }} - {% endif %} -
-
- {% endfor %} -
-
- -
diff --git a/_layouts/default.html b/_layouts/default.html deleted file mode 100644 index 33d91d7fb7ef..000000000000 --- a/_layouts/default.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - {%- if page.redirect -%} - - {%- endif -%} - {% include head.html %} - - - - - - - {%- include header.html %} - - -
- {{ content }} -
- - - {%- include footer.html %} - - - {% include scripts/jquery.html %} - {% include scripts/bootstrap.html %} - {% include scripts/masonry.html %} - {% include scripts/mathjax.html %} - {% include scripts/misc.html %} - {% include scripts/analytics.html %} - {% include scripts/progressBar.html %} - - - -{% fa_svg_generate %} diff --git a/_layouts/distill.html b/_layouts/distill.html deleted file mode 100644 index e6f036d941ee..000000000000 --- a/_layouts/distill.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - {%- include head.html %} - - - - - - - - - - - - {% if page._styles %} - - - {%- endif %} - - - - - - - - - - {%- include header.html %} - - -
- - -

{{ page.title }}

-

{{ page.description }}

-
- - - - - {% if page.toc -%} - - - - {%- endif %} - - {{ content }} - - - - - - - - - - {%- if site.disqus_shortname and page.disqus_comments -%} - {% include disqus.html %} - {%- endif %} - {%- if site.giscus.repo and page.giscus_comments -%} - {% include giscus.html %} - {%- endif -%} - -
- - - {%- include footer.html %} - - {% include scripts/bootstrap.html %} - {% include scripts/misc.html %} - {% include scripts/analytics.html %} - {% include scripts/progressBar.html %} - - diff --git a/_layouts/none.html b/_layouts/none.html deleted file mode 100644 index b92f6522338a..000000000000 --- a/_layouts/none.html +++ /dev/null @@ -1 +0,0 @@ -{{content}} diff --git a/_layouts/page.html b/_layouts/page.html deleted file mode 100644 index 02fb5f641f7d..000000000000 --- a/_layouts/page.html +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: default ---- - -
- -
-

{{ page.title }}

-

{{ page.description }}

-
- -
- {{ content }} -
- -
diff --git a/_layouts/post.html b/_layouts/post.html deleted file mode 100644 index e7775fab040b..000000000000 --- a/_layouts/post.html +++ /dev/null @@ -1,51 +0,0 @@ ---- -layout: default ---- - -{%- assign year = page.date | date: "%Y" -%} -{%- assign tags = page.tags | join: "" -%} -{%- assign categories = page.categories | join: "" -%} - -{% if page._styles %} - - -{% endif %} - -
- -
-

{{ page.title }}

- - -
- -
- {{ content }} -
- - {%- if site.disqus_shortname and page.disqus_comments -%} - {% include disqus.html %} - {%- endif %} - {%- if site.giscus.repo and page.giscus_comments -%} - {% include giscus.html %} - {%- endif -%} - -
diff --git a/_pages/index.md b/_pages/index.md deleted file mode 100644 index d56015da1a80..000000000000 --- a/_pages/index.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -layout: about -title: Rohan Deb Sarkar -permalink: / -subtitle: > - Undergarduate physics student at Ramakrishna Mission Vivekananda Centenary College - -profile: - align: right - svg: rohandebsarkar.svg - image: rohandebsarkar.png - address: > -

Kolkata, West Bengal,
Union of India

- -news: false # includes a list of news items -selected_papers: false # includes a list of papers marked as "selected={true}" -social: false # includes social icons at the bottom of the page ---- - -Hello! this is Rohan Deb Sarkar. Welcome to my website. - -I am currently an undergraduate student at the physics department of Ramakrishna Mission Vivekananda Centenary College, Rahara, Kolkata. While Physics is my major subject, Mathematics and Computer Science are my minor subjects. - -I finished my senior secondary (XII Standard) schooling from International Public School, Kolkata. My major subjects of focus were Physics, Mathematics and Computer Science. - -I am dedicated to science and keen to utilize my knowledge in the best interests of science, humankind, and this planet. My interests include Physics, Computer Science, and a bit of Mathematics. - -I am seeking to research and learn about things that are unknown to me. diff --git a/_pages/projects.md b/_pages/projects.md deleted file mode 100644 index 8ef01b3e76f8..000000000000 --- a/_pages/projects.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: Projects -permalink: /projects/ -nav: true -nav_order: 1 ---- - -
-
    - {% for post in site.projects %} -
  • - -

    {{ post.title }}

    -

    {{ post.description }}

    -
  • - {% endfor %} -
-
diff --git a/_pages/resume.md b/_pages/resume.md deleted file mode 100644 index b6871ce7e649..000000000000 --- a/_pages/resume.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -layout: cv -permalink: /resume/ -title: Résumé -nav: true -nav_order: 2 - -cv_pdf: .resume/resume.pdf ---- diff --git a/_plugins/external-posts.rb b/_plugins/external-posts.rb deleted file mode 100644 index e4fd5eb69517..000000000000 --- a/_plugins/external-posts.rb +++ /dev/null @@ -1,36 +0,0 @@ -require 'feedjira' -require 'httparty' -require 'jekyll' - -module ExternalPosts - class ExternalPostsGenerator < Jekyll::Generator - safe true - priority :high - - def generate(site) - if site.config['external_sources'] != nil - site.config['external_sources'].each do |src| - p "Fetching external posts from #{src['name']}:" - xml = HTTParty.get(src['rss_url']).body - feed = Feedjira.parse(xml) - feed.entries.each do |e| - p "...fetching #{e.url}" - slug = e.title.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '') - path = site.in_source_dir("_posts/#{slug}.md") - doc = Jekyll::Document.new( - path, { :site => site, :collection => site.collections['posts'] } - ) - doc.data['external_source'] = src['name']; - doc.data['feed_content'] = e.content; - doc.data['title'] = "#{e.title}"; - doc.data['description'] = e.summary; - doc.data['date'] = e.published; - doc.data['redirect'] = e.url; - site.collections['posts'].docs << doc - end - end - end - end - end - -end diff --git a/_plugins/hideCustomBibtex.rb b/_plugins/hideCustomBibtex.rb deleted file mode 100644 index 4a852fde6a6e..000000000000 --- a/_plugins/hideCustomBibtex.rb +++ /dev/null @@ -1,15 +0,0 @@ - module Jekyll - module HideCustomBibtex - def hideCustomBibtex(input) - keywords = @context.registers[:site].config['filtered_bibtex_keywords'] - - keywords.each do |keyword| - input = input.gsub(/^.*#{keyword}.*$\n/, '') - end - - return input - end - end -end - -Liquid::Template.register_filter(Jekyll::HideCustomBibtex) diff --git a/_posts/2020-03-05-remembering-satyajit-ray.md b/_posts/2020-03-05-remembering-satyajit-ray.md deleted file mode 100644 index 08c59444e4f4..000000000000 --- a/_posts/2020-03-05-remembering-satyajit-ray.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: post -title: "Remembering Satyajit Ray on his Birth Centenary" -description: "A small post on the life of Satyajit Ray, to celebrate 100 years of the legendary filmmaker." -author: Rohan Deb Sarkar -date: "2020-05-03" -tags: satyajit-ray manik-da birth-centenary tribute ---- - -
-{% include figure.html path="assets/img/posts/satyajit-ray.jpg" alt="Satyajit Ray" caption="Satyajit Ray. © Nemai Ghosh" %} -
- -Satyajit Ray was born on May 2, 1921. The upcoming year we will be celebrating his 100th birthday. He is best known throughout the world as "the greatest film maker of all time". The Bengali Maestro directed many films throughout his life which has influenced many filmmakers all over the world. His first film "Pather Panchali", the first movie of the "Apu Triology" is still regarded as one of the best films ever created. - -> "Never having seen a Satyajit Ray film is like never having seen the Sun or the Moon" -Akira Kurosawa - -Stayjit Ray was inspired into film making by Vittorio De Sica's Italian neorealist film "Bicycle Thieves" while he was working for an advertising agency in London. While working in London, Ray watched 99 films and had made his mind for becoming a filmmaker. After returning back to India, Ray decided to make first film on Bibhutibhushan Bandyopadhyay's novel "Pather Panchali". While making his first film Ray faced many difficulties, he was repeatedly denied by the producers until Ray decided to make the film with his own money. But soon realised that the amount he had with him was not enough to make a film. He then again approached the producers, this time also they denied him or asked him to change how the film ends. At last Ray approached Government of West Bengal for a loan, who also asked him to modify his script and incorporate a happy ending but Ray denied, ultimately Government of West Bengal provided Ray with the loan. Ray then completed his first film which took him an unusual amount of time of two and a half years for shooting of a film, which we today know as one of the best films ever directed on the planet. "Pather Panchali" was finally released in 1955. It went onto win many international awards from all over the world including the award for The best Human Documentary in 1956 Cannes Film Festival. - -> "It is absurd to compare it with any other Indian cinema…. Pather Panchali is pure cinema." -Times of India - -Satyajit Ray was hugely inspired from Rabindranath Tagore's works and had said it was because of Tagore, he was acquainted to the Indian and far eastern art. - -> "I consider the three years I spent in Santiniketan as the most fruitful of my life …. Santiniketan opened my eyes for the first time to the splendours of Indian and Far Eastern art. Until then I was completely under the sway of Western art, music and literature. Santiniketan made me the combined product of East and West that I am." -Satyajit Ray - -He was awarded the Honorary Academy Award (Honorary Oscars) as a lifetime achievement award in 1991 by the Academy of Motion Picture Arts and Sciences - -> "in recognition of his rare mastery of the art of motion pictures, and of his profound humanitarian outlook, which has had an indelible influence on filmmakers and audiences throughout the world." - -Satyajit Ray was awarded Dadasaheb Phalke Award in 1985 and Bahrat Ratna in the year 1992. He was also awarded the highest civilian award from France and Yugoslavia, The Legion of Honour and The Yugoslav Star respectively. His films has inspired many. His influences can be observed in many cinemas from Hollywood to Bollywood. - -Although he is well known around the world as "the best filmmaker of all time" but he is also one of the greatest writers of the Bengali Literature and a favourite among the Bengali readers. His characters such as Feluda, a sleuth; Professor Shonku, a scientist; and Tarini Khuro, a traveller; are very popular not only in Bengal but all over India. He was awarded an honorary Doctorate by the Royal College of Arts and a Doctor of Letters form Oxford University for his contributions in literature. - -Ray's humanitarian works has showed the world the greatness of Bengali cum Indian Cinema. His humanitarian approach towards parallel cinema has gained praise from all over the world. - -Ray said, "He aims to capture both what is unique in the Indian experience and that which is universal." -The Academy Archives started "Satyajit Ray Preservation Project", after the Horary Oscars was awarded to him. Today, the Academy has 18 feature films and one short film of Satyajit Ray digitally archived and has preserved many more so that they are never lost, as they said it will inspire generations after generations of filmmakers to come. The original film roll of "Pather Panchali" was burnt in an accident, but the burnt original film of "Pather Panchali" was kept in a museum by the Academy for directors to get inspiration from. A video explaining how Satyajit Ray's films were restored can be viewed here. - -
- -*Originally published at rohandebsarkar.blogspot.com on May 3, 2020.* diff --git a/_projects/cyclotron.md b/_projects/cyclotron.md deleted file mode 100644 index 07ecae272026..000000000000 --- a/_projects/cyclotron.md +++ /dev/null @@ -1,573 +0,0 @@ ---- -layout: distill -title: "Cyclotron: A Particle Accelerator" -description: "A theoretical research based project on Cyclotron: A particle accelerator." -date: "2021-05-22" - -authors: - - name: Rohan Deb Sarkar - affiliations: - name: International Public School - url: http://ipskol.com - -bibliography: project-cyclotron.bib - -toc: - - name: Particle Accelerators - subsections: - - name: Electrostatic particle accelerators - - name: Electrodynamic particle accelerators - - name: 'Cyclotron: A Particle Accelerator' - - name: Basic Principles of Working of a Cyclotron - subsections: - - name: Static magnetic field - - name: Dynamic electric field - - name: Construction of A Cyclotron - - name: Explanation of Working of a Cyclotron - - name: Mathematical Explanation of Working of a Cyclotron - subsections: - - name: Magnetic Field of a cyclotron - - name: Electric Field of a cyclotron - - name: Frequency of a cyclotron - - name: Velocity of an ion in a cyclotron - - name: Energy of an ion in a cyclotron - - name: Voltage-Time relation of a cyclotron - - name: Advantages of Cyclotrons - - name: Limitations of Cyclotrons - - name: Modifications of Cyclotron - subsections: - - name: Synchrocyclotron - - name: Isochronous cyclotron - - name: Conclusion - - name: Bibliography - -enable_math: true - -_styles: > - figure { - float: left; - margin: 0 auto 0.50em; - } - figcaption { - color: black; - font-style: italic; - padding: 2px; - text-align: center; - } ---- - -Cyclotrons are a classification of particle accelerators. Their principal application -is to set charged particles into high speed motions, which may even be close to -the speed of light and can carry an energy of several billion electron-volts. This -form of high energy motion is achieved by subjecting the charged particles into -electromagnetic fields and thus accelerating them by applying electromagnetic -forces of attraction and repulsion. - -Cyclotron is a classification of an electrodynamic particle accelerator. It -accelerates the charged particle outward from the through a spiral trajectory by -subjecting the charged particle into a static magnetic field and repeatedly -accelerates the particle by a rapidly alternating dynamic electric field. The final -energy obtained by the particles are much greater than the impressed voltages -on the electrodes. - -Cyclotron was invented by the American scientist Ernest Orlando Lawrence -during the years 1929 and 1930, for which he was awarded The Nobel Prize in -Physics in 1939. The first working model of cyclotron was constructed in 1931 -by American physicist Milton Stanley Livingston at the University of California at -Berkeley; it was a 4-inch working model of cyclotron and was able to produce -80,000 eV protons. - -
- Fig.1 - The first cyclotron -
Fig.1 - The first cyclotron
-
- -Cyclotron was a breakthrough in particle physics, as it was able to accelerate -charged particles to a speed that was not possible otherwise. It paved the way -for various researches in fields of physics, chemistry, medical sciences, and in -other scientific subjects. Cyclotron was used for various important scientific -studies such as the discovery of transmutation of atomic nuclei artificially, the -discovery of transuranium elements, research for treating cancer cells, and -many more. - -## Particle Accelerators - -A particle accelerator is a device that is used to propel charged particles to -extremely high speed and energies using electromagnetic fields, and to contain -them in well-defined beams. - -There are two major classifications of particle accelerators: - -### Electrostatic particle accelerators - -Electrostatic particle accelerators use static electric fields to accelerate -charged particles to high energy speeds. Electrostatic accelerators -accelerate particles by applying static electric potential across the -particle. As the particle comes in the electric field of the applied potential -the particle experiences a force, which results in the acceleration of the -particle. - -Some examples of electrostatic particle accelerators: -- Cockcroft-Walton accelerator -- Van de Graaff accelerator - -### Electrodynamic particle accelerators - -Electrodynamic particle accelerator uses a dynamic electric field to -accelerate charged particles to high energy speeds. These particle -accelerators accelerate particles by subjecting them to oscillating electric -potentials. Electrodynamic accelerators can accelerate particles to higher -energies compared to electrostatic accelerators. - -Some examples of electrodynamic particle accelerators: -- Linear accelerators -- Betatron -- Cyclotron - -## Cyclotron: A Particle Accelerator - -Cyclotron accelerates a charged particle to remarkably high energy without the -use of high voltage, and thus avoiding the limitations of insulation break-down. -The charged particles move in widening semi-circular paths in a uniform -magnetic field, crossing back and forth in a vacuum chamber between two D- -shaped hollow electrodes in resonance with a rapidly oscillatory electric field. -The particles moving in a spiral outward trajectory are accelerated at each -traversal of the electric field, attaining a final energy hundreds of times greater -than that available from the impressed voltage on the electrodes. This principle -of resonance acceleration is termed as "magnetic resonance acceleration" and -the technical name for the device is "magnetic resonance accelerator", which is -concisely termed as "cyclotron". - -
- Fig.2 - Construction and working of a cyclotron -
Fig.2 - Construction and working of a cyclotron
-
- -The cyclotron principle was proposed in 1930 by Professor Ernest Orlando -Lawrence of the University of California. The original idea of accelerating a -charged particle in an oscillatory electric field was suggested by a experiment -conducted by the Norwegian accelerator physicist Rolf Wideröe in 1928 in which -ions of sodium and potassium were accelerated to twice the applied voltage in -traversing two tubular electrodes in line between which an oscillatory electric -field was applied. The conception of the idea of cyclotron occurred to Lawrence -in the library of the University of California in the summer of 1929, when -professor Lawrence was browsing through the current journals and read Wideröe’s paper -in "Archiv für Elektrotechnik". The principle of the acceleration in a cyclotron was -announced in a short article by professor Lawrence and his graduate student Edlefsen in -1930\. Edlefsen, on professor Lawrence’s request, attempted a brief preliminary -experimental test of the principle but the experiment was not successful in -demonstrating resonance and therefore no experimental results could be -reported. Later, professor Lawrence suggested this problem to Livingston, a -graduate student at Berkeley, as the subject for an experimental research -investigation to demonstrate the validity of the resonance principle. A doctorate -thesis by Livingston dated April 14, 1931 reported the results of the experiment. -This was the first experimental verification of the principle of cyclotron -resonance. For this preliminary study only small-sized laboratory equipment was -available, including an electromagnet of 4 inches pole diameter. An illustration -from the thesis shows the arrangement of the components. - -
- Fig.3 - Illustration of the working of one of the first cyclotrons -
Fig.3 - Illustration of the working of one of the first cyclotrons
-
- -## Basic Principles of Working of a Cyclotron - -### Static magnetic field - -The static magnetic field is produced by a pair of magnets preferably -electromagnets. These magnets are aligned horizontally with a specific -amount of distance between them which is crucial for the cyclotron to -work. It is preferred that the magnets are adjusted in such a manner that -the magnetic field produced by the magnets be as uniform as possible. -The uniform magnetic field keeps the charged particle or ion in a spiral -path while travelling between the hollow D-shaped electrodes. The -magnetic field is directed perpendicular to the electric field as a result the -ion experiences a Lorentz force perpendicular to the radius of the spiral -path and therefore moves in a circular path. - -### Dynamic electric field - -The dynamic electric field is implemented using a radio frequency -generator which induces an alternating current across the pair of hollow -metallic D-shaped electrodes. The frequency of the alternating current is -adjusted depending on the frequency of the rotation of the ion inside the -D-shaped electrodes. The frequency is very important for the ions to -attain maximum energy in the minimum number of turns and is thus -called the frequency of that cyclotron. When the electrons travel through -the diametral gap between the electrodes, they experience an -electrostatic force and thus attain a higher energy. An alternating radio -frequency is required to change the direction of the electric field after -every half-rotation of the ion across the electrodes. After attaining a -higher energy, the ion rotates with a larger radius. This dynamic electric -field powers the resonance principle which is the driving power behind -the working of a cyclotron. - -## Construction of A Cyclotron - -A basic cyclotron works by accelerating charged particles in a spiral path inside -the cyclotron inside a pair of electrodes. The electrodes are a pair of hollow -semi-circular flat metallic cylinders in the shape of a capital "D" and are thus -called "dees". The charged particles or ions revolve in order to attain a high -energy state even with a much lower applied voltage. These dees are so -constructed that it is possible to evacuate the air from them during operation as -the collisions of the bombarding particles with air molecules greatly decreases -the energy of the particles. The electrodes are connected to a radio frequency -generator and are placed in a nearly uniform magnetic field. Charged particles -are produced by an ion source directly in the centre of the cyclotron between -the two electrodes. The dees are located between the poles of electromagnet. -The alternating current field applied by the magnet causes the charged ions to -revolve inside the dees with increasing velocity and kinetic energy. These dees -are connected to a radio frequency generator and are placed in a nearly uniform -magnetic field. The magnetic field causes the particle to move in the median -plane in approximately circular orbits inside the hollow electrodes and across -the gap between them. At each gap, particles are accelerated and, therefore, -they follow a spiral path as they gain energy. - -Cyclotron magnets are classically simple in their design features. Most -preferably electromagnets are used for their ability of fine tuning the required -magnetic field. The magnets are aligned horizontally perpendicular to the -electric field. This arrangement powers the resonance principle which is the -main principle behind the working of a cyclotron, keeping the charged particle -inside the electrodes traveling in a spiral circular path. This helps in accelerating -the ion multiple times without requiring large sized particle accelerators. - -The D-shaped electrodes are kept in a chamber, which fits between the poles of -the electromagnet. The chamber must be vacuum-tight, which is necessary since -without the vacuum the ions will experience resistance from the air molecules -when travelling at high velocities, and the chamber is mechanically designed -with adequate structural strength to resist distortion when under vacuum. It is -constructed of non-magnetic materials to prevent disturbance of the -symmetrical magnetic field and are of high electrical conductivity to provide low -resistance for the radio frequency currents. - -
- Fig.4 - Construction of a cyclotron -
Fig.4 - Construction of a cyclotron
-
- -## Explanation of Working of a Cyclotron - -There are two forces behind the working of a cyclotron: the dynamic electric -field and the static magnetic field. The electric field is provided by the two hollow -D-shaped electrodes separated by a diametral gap inside the vacuum chamber, -while the magnetic field is produced by the two powerful magnets (preferably -electromagnets) located above and below the hollow electrodes. This whole -setup is enclosed in a tightly packed vacuum chamber to avoid any loss of energy -arising from the friction provided by air resistance. - -This arrangement of the hollow electrodes and the magnets inside the vacuum -chamber provides the cyclotron with the characteristic resonance principle. The -north pole of the magnet is placed above the electrodes and the south pole is -placed below them, therefore the net magnetic field acts across the electrode -in the downwards direction. While the electric field acts from the positive -electrode to the negative electrode in the region of the diametral gap (since, -there is no electric field inside a conductor). The polarity of the electrodes as -well as the direction of the electric field changes back and forth due to the -alternating current applied to the electrodes. - -The charged particle or the ion which is to be accelerated is ejected near the -centre of the vacuum chamber between the electrodes in the region of the -diametral gap. As soon as the ion is ejected it is attracted by the oppositely -charged electrode at that instant due to the electrostatic forces. The ion -accelerates and enters the electrode. The region inside the D-shaped electrode -being electric-field-free zone, the ions are not accelerated but are acted upon -only by a near uniform magnetic field which forces it to travel in circular orbits -in a plane normal to the magnetic field. - -The magnetic field drives the ions to be in a circular path due to the Lorentz -force applied due to the presence of the magnetic field and the charge on the -ions. The Lorentz force is applied perpendicular to the radius of rotation of the -particle as a result the particle moves in a circular path. - -After traversing a semi-circular path, the ions return to the diametral gap -between the electrodes and come in the influence of the electric field. For the -condition of resonance, the magnetic field is adjusted so the time required for -ions to complete a semicircle is equal to the time for reversal of the oscillatory -electric field. Therefore, after traversing the first semi-circle the ion experiences -another acceleration due to the electrostatic forces, acquiring a higher velocity, -and goes onto travel a path of larger radius within the other electrode. As long -as the resonance is maintained, the ions are accelerated each time it crosses the -diametral gap, travelling in ever-widening semicircles until it reaches the -periphery of the electrodes and gets ejected out of the cyclotron with an -enormous energy. - -The frequency of the alternating current is very crucial for the charged particles -to be in complete phase so that they can attain very high energies with the -minimum number of turns. If the frequency of the cyclotron is not fine-tuned -for the ion to be in phase the efficiency of the cyclotron decreases drastically. - -
- Fig.5 - Vector diagram of the forces acting inside the cyclotron on an electron -
Fig.5 - Vector diagram of the forces acting inside the cyclotron on an electron
-
- -## Mathematical Explanation of Working of a Cyclotron - -### Magnetic Field of a cyclotron - -The magnetic field provides the Lorentz force on the ions, which is -equivalent to, - -$$\vec{F}=q(\vec{v}\times\vec{B})$$ - -where,\ -$$\vec{F}$$ represents the magnetic force on the ion;\ -$$q$$ represents the charge on the ion;\ -$$\vec{v}$$ represents the velocity of the ion;\ -$$\vec{B}$$ represents the magnetic field of the cyclotron. - -Because the direction of the force is the cross product between the -velocity of the particle and the magnetic field, the Lorentz force is -perpendicular to both. Since the accelerated ions travel in a plane normal -to the magnetic field, the magnitude of the Lorentz force is, - -$$F=qvB$$ - -This magnetic force causes the ion to travel in a circular path, if $$m$$ is the -mass of the ion and $$r$$ is the radius of the circular orbit. Then the centripetal -force acting on the ion is, - -$$F=\frac{mv^2}{r}$$ - -Comparing the centripetal force with the Lorentz magnetic force, we get, - -$$qvB=\frac{mv^2}{r}$$ - -### Electric Field of a cyclotron - -The oscillating electric field supplies the force to accelerate the particles -to high velocities. As the ions travel in a circular path in a magnetic field, -they will cross the gap between the two D-shaped electrodes twice in a -revolution, each time receiving an electrostatic force accelerating them to -a higher energy. - -The force acting on the particles with charge $$q$$ and electric field $$E$$ is, - -$$\vec{F_E}=q\vec{E}$$ - -### Frequency of a cyclotron - -The frequency of revolution $$f$$ of the ion in the circular path is, - -$$f=\frac{v}{2\pi r}=\frac{qB}{2\pi m}$$ - -This frequency $$f$$ is thus constant for a uniform electric field $$B$$ as long as -the mass $$m$$ and charge $$q$$ of the ion is constant. Thus, the relation -between $$f$$ and $$B$$ becomes, - -$$f=\left(\frac{1}{2\pi}\times \frac{q}{m}\right)\times B$$ - -This linear relation between applied frequency and magnetic field is the -fundamental equation of cyclotron resonance. When evaluated for the -$$q/m$$ values characteristic of light ions, we get - -| Ions | $$f$$(megacycles) | -|:---------------------------------:|:---------------------:| -| protons ($$H^+$$) | $$1.52B$$ | -| deuterons ($$D^+$$) | $$0.76B$$ | -| $$\alpha$$-particle ($$He^{++}$$) | $$0.76B$$ | - -The above relations are plotted in graph to illustrate the range of frequencies required to produce resonant acceleration in magnetic fields -up to 20 kilogauss. - -
- Graph 1 - Demonstrating variation of frequency between various charged particles -
Graph 1 - Demonstrating variation of frequency between various charged particles
-
- -### Velocity of an ion in a cyclotron - -Comparing the centripetal force with the Lorentz force, we get, - -$$\frac{mv^2}{r}=qvB$$ - -$$\implies v^2 = qvB \times \frac{r}{m}$$ - -$$\implies v=\sqrt{qvB \times \frac{r}{m}}$$ - -### Energy of an ion in a cyclotron - -Considering the average potential difference between the two D-shaped -electrodes be $$V$$. The increment in the kinetic energy ($$\Delta E_K$$) for each -traversal through the diametral gap would be, - -$$\Delta E_K = qV$$ - -Considering the ion accelerates $$n$$ times by passing through the diametral -gap, the total kinetic energy ($$E_K$$) processed by the ion during the final -rotation would be, - -$$E_K = n \times qV$$ - -But, $$n=\left(\frac{f}{2}\right)$$ - -$$E_K = \left(\frac{f}{2}\right) \times qV$$ - -Considering the velocity of the ion during the final rotation be $$v$$, the total -kinetic energy ($$E_K$$) processed by the ion would be, - -$$E_K = n \times qV = \frac{1}{2}mv^2$$ - -Therefore, the output kinetic energy of the particles expressed in terms -of the magnetic field $$B$$ and final orbit radius $$R$$, - -$$E_K = \frac{q^2B^2R^2}{2m}$$ - -Expressing the kinetic energy per unit charge, - -$$\frac{E_K}{q} = \frac{1}{2}\frac{q}{m}B^2R^2$$ - -### Voltage-Time relation of a cyclotron - -A voltage-time graph of the potential between the electrodes of a -cyclotron is shown in the graph. On each traversal of the diametral gap -between electrodes the particle will acquire an increment of kinetic -energy, $$\Delta E_K = qV$$, where $$V$$ is the potential difference between the two -electrodes. The magnitude of the increment is determined by the phase -of crossing the gap. Since, the particles will be moving in opposite -directions in successive passages through the diametral gap, so the kinetic -energy increments are cumulative. Distinct phases of resonance are -plotted on the graph ($$points - 1, 2, 3, 4 ...$$), a resonant particle crossing -at the phase of peak field ($$point - 1$$) will reach maximum energy in the -minimum number of turns. While the ions crossing at other phases -($$points - 2, 3, 4 ...$$), will acquire energy in smaller increments but will -remain in resonance for a larger number of turns to reach the maximum -energy. - -
- Graph 2 - Voltage-time relation of a cyclotron -
Graph 2 - Voltage-time relation of a cyclotron
-
- -## Advantages of Cyclotrons - -Cyclotron was a huge improvement over the previous generation particle -accelerators for several reasons: - -- Cyclotron uses the resonance principle for accelerating the charged - particles. For this reason, it was a huge cost-effective option as it could - make use of the same electric field again and again to accelerate the - particle into high energies instead of accelerating the particle in a straight - line through a evacuated tube. -- It was also a very good space effective option as it did not require large - space as required by the linear accelerators. -- With cyclotrons it was for the first time possible to attain particles with - tremendous high energies by only applying a small potential difference - across the electrodes. -- It provided a compact design for particle accelerators by accelerating the - particle in a spiral path. Before cyclotrons, particle accelerators were very - bulky and inefficient. - -## Limitations of Cyclotrons - -When professor Lawrence invented the cyclotron, he did not consider the -relativistic consequences. He assumed the spiral path of the particle inside the -cyclotron was in accordance with Newton's laws of motion. If the particles -acquire enough energy so to become sufficiently fast that the relativistic effects -become more important then the desired results are not obtained. -At high velocities, the mass of the particle increases according to the given -formula, - -$$m=\frac{m_0}{\sqrt{1-\frac{v^2}{c^2}}}$$ - -where,\ -$$m$$ represents the mass of the particle at the instant when velocity is $$v$$;\ -$$m_0$$ represents the rest mass of the particle;\ -$$c$$ represents the speed of light. - -This change in mass largely affects the performance of the cyclotron. -Apart from the relativistic consequences, cyclotrons are also unable to -accelerate electrons because they have very low mass and get energised rapidly. -The velocity of the cyclotron increases to such a great extent that the electron -will be thrown out of the step with the oscillating field. - -## Modifications of Cyclotron - -In order to correct the relativistic limitations of a cyclotron some adjustments -are made to the original design of the cyclotron by Professor Lawrence. The -following are some special types of cyclotron classified based on the -adjustments made to the original design. - -The adjustments were made using the adjustment factor $$\gamma$$, - -$$\gamma = \frac{1}{\sqrt{1-\frac{v^2}{c^2}}}$$ - -### Synchrocyclotron - -Instead of a constant frequency in an original cyclotron, the frequency of -the RF electric field in a synchrocyclotron is varied to compensate for the -relativistic effects on the mass of the particles as its velocity approaches -the speed of light. - -The frequency is adjusted using the following equation, - -$$f=\frac{f_0}{\gamma}$$ - -where,\ -$$f$$ represents the frequency of the synchrocyclotron;\ -$$f_0$$ represents the frequency of the non-adjusted cyclotron;\ -$$\gamma$$ represents the Lorentz factor. - -### Isochronous cyclotron - -Isochronous cyclotron is an alternative to the synchrocyclotron, in this -design the magnetic field increases with the radius. Isochronous -cyclotrons can produce particles with much greater velocity compared to -synchrocyclotrons. - -The magnetic field is adjusted using the following equation, - -$$B=\gamma B_0$$ - -where,\ -$$B$$ represents the magnetic field of the isochronous cyclotron;\ -$$B_0$$ represents the magnetic field of the non-adjusted cyclotron;\ -$$\gamma$$ represents the Lorentz factor. - -## Conclusion - -Cyclotron was invented in 1930 by Ernest Orlando Lawrence. It revolutionised -the way particle accelerators worked. It provided a very efficient design for -accelerating charged particles to very high speeds with a fraction of voltage -applied across electrodes. The circular design of the cyclotron made it very -compact. Cyclotrons are preferred over other cyclotrons for its efficiency. - -Before cyclotrons, charged particles were accelerated mostly using linear -particle accelerators. Linear particle accelerators used multiple electric fields to -accelerate the particles making the design very bulky. Cyclotron solved this -problem by giving a compact circular design which was able to accelerate -particles to high velocity by accelerating them in the same electric field -repeatedly. - -The cyclotron resonance principle worked with the help of a static magnetic field -and an alternating electric field. The static magnetic field keeps the charged -particle in its orbit inside the electrodes, whereas the alternating current across -the electrodes is used to accelerate the particles by revolving them in a spiral -trajectory of increasing radius. The particle keeps on gaining energy and -therefore increases its radius every time there is an increase in its velocity. -Ultimately when the radius of its trajectory becomes equal to the radius of the -cyclotron it is ejected as a beam of very high current. - -Though cyclotron was a huge improvement over its predecessors, it still had -some drawbacks. The design of cyclotron did not consider the relativistic effects -of high velocity in the mass of the particles. Therefore, later some adjustments -were made to cancel the relativistic effects. - -Cyclotron paved a way for a new generation of particle accelerators. It solved -many problems associated with previous accelerators. It revolutionised the way -particle accelerators worked by putting forward the resonance principle. - -*** - -## Bibliography - -- Livingston, M. Stanley, and John P. Blewett. "Particle Accelerators Mc Graw-Hill Book Company." INC, NY (1962). - -- Lawrence, Ernest O. "Method and apparatus for the acceleration of ions." U.S. Patent No. 1,948,384. 20 Feb. 1934. - -- Lawrence, Ernest O. "The evolution of the cyclotron." Nobel Lecture (1951). - -- Lawrence, Ernest O., and M. Stanley Livingston. "The production of high speed light ions without the use of high voltages." Physical Review 40.1 (1932): 19. - -- Sayre, Joseph G. "The Cyclotron." Ohio State Engineer, vol. 26, no. 5 (April, 1943), 11-12, 18. diff --git a/_sass/_base.scss b/_sass/_base.scss deleted file mode 100644 index 91095d33e093..000000000000 --- a/_sass/_base.scss +++ /dev/null @@ -1,784 +0,0 @@ -/******************************************************************************* - * Styles for the base elements of the theme. - ******************************************************************************/ - -// Typography - -p, h1, h2, h3, h4, h5, h6, em, div, li, span, strong { - color: var(--global-text-color); -} - -hr { - height: 1px; - background-color: var(--global-divider-color); - border: none; - opacity: 1; -} - -table { - td, th { - color: var(--global-text-color); - } - td { - font-size: 1rem; - } -} - -a, table.table a { - color: var(--global-theme-color); - text-decoration: none; - &:hover { - color: var(--global-hover-color); - text-decoration: underline; - } - &:hover:after :not(.nav-item.dropdown) { - width: 100%; - } -} - -figure, img { - max-width: 90vw; -} - -blockquote { - text-align: center; - background: var(--global-bg-color); - border-left: 2px solid var(--global-theme-color); - margin: 1.5em 10px; - padding: 0.5em 10px; - font-size: 1.3rem; - font-style: italic; -} - -hr { - border-color: var(--global-divider-color); -} - -// Math - -.equation { - margin-bottom: 1rem; - text-align: center; -} - -// Caption - -.caption { - font-size: 0.875rem; - margin-top: 0.75rem; - margin-bottom: 1.5rem; - text-align: center; -} - -// Card - -.card { - background-color: var(--global-card-bg-color); - img { - width: 100%; - } - .card-title { - color: var(--global-text-color); - } - .card-item { - width: auto; - margin-bottom: 0.75rem; - .row { - display: flex; - align-items: center; - } - } -} - -// Citation - -.citation, .citation-number { - color: var(--global-theme-color); -} - -// Profile - -.profile { - width: 100%; - .address { - margin: 0.5rem 0; - font-family: monospace; - text-align: center; - p { - display: inline-block; - font-family: inherit; - margin: 0; - } - } -} -.profile.float-right{ - margin-left: 1rem; -} -.profile.float-left{ - margin-right: 1rem; -} - -@media (min-width: 576px) { - .profile { - margin-left: 1rem; - width: 30%; - min-width: 256px; - min-height: 256px; - .address { - p { display: block; } - } - } -} - -.post-description { - margin-bottom: 2rem; - font-size: 0.875rem; - a { - color: inherit; - &:hover { - color: var(--global-hover-color); - text-decoration: none; - } - } -} - - -// Navbar customization - -.navbar { - box-shadow: none; - border-bottom: 1px solid var(--global-divider-color); - background-color: var(--global-bg-color); - opacity: 0.95; -} -.navbar .dropdown-menu { - background-color: var(--global-bg-color); - border: 1px solid var(--global-divider-color); - a:not(.active) { - color: var(--global-text-color); - } - a:hover { - color: var(--global-hover-color); - } - hr { - margin: 0; - } -} -.dropdown-item { - color: var(--global-text-color); - background-color: var(--global-bg-color); - border-radius: inherit; - &:hover, &:focus { - color: var(--global-hover-color); - background-color: inherit; - } -} -.navbar.navbar-light { - a { - &:hover { - text-decoration: none; - } - } - .navbar-brand { - color: var(--global-text-color); - } - .navbar-nav .nav-item .nav-link { - color: var(--global-text-color); - &:hover { - color: var(--global-hover-color); - } - } - .navbar-nav .nav-item.active>.nav-link { - background-color: inherit; - font-weight: bolder; - color: var(--global-theme-color); - &:hover { - color: var(--global-hover-color); - } - } - .navbar-brand.social { - padding-bottom: 0; - padding-top: 0; - font-size: 1.25rem; - svg { - width: 1.25rem; - height: 1.25rem; - fill: var(--global-text-color); - transition-property: all 0.2s ease-in-out; - &:hover { - fill: var(--global-theme-color); - } - } - a { - padding: 0 6px; - i::before { - color: var(--global-text-color); - transition-property: all 0.2s ease-in-out; - } - &:hover { - i::before { - color: var(--global-hover-color); - } - } - } - } -} - -.navbar-toggler { - border: none; - &:focus { - outline: none; - box-shadow: none; - } - .icon-bar { - display: block; - width: 22px; - height: 2px; - background-color: var(--global-text-color); - border-radius: 1px; - margin-bottom: 4px; - } - .top-bar { - transform: rotate(45deg); - transform-origin: 10% 10%; - } - .middle-bar { - opacity: 0; - } - .bottom-bar { - transform: rotate(-45deg); - transform-origin: 10% 90%; - } -} - -.navbar-toggler.collapsed { - .top-bar { - transform: rotate(0); - } - .middle-bar { - opacity: 1; - } - .bottom-bar { - transform: rotate(0); - } -} - -#light-toggle { - height: 100%; - border: 0; - background-color: inherit; - svg { - width: 1rem; - height: 1rem; - transition-property: all 0.2s ease-in-out; - fill: var(--global-text-color); - &:hover { - fill: var(--global-hover-color); - } - } -} - -// News - -.news h2 { - padding-bottom: 1rem; - border-bottom: 1px solid var(--global-text-color); -} - -// Social (bottom) - -.social { - text-align: center; - .contact-icons { - font-size: 3rem; - svg { - width: 3rem; - height: 3rem; - fill: var(--global-text-color); - transition-property: all 0.2s ease-in-out; - &:hover { - fill: var(--global-theme-color); - } - } - a { - padding: 1rem; - i::before { - color: var(--global-text-color); - transition-property: all 0.2s ease-in-out; - } - &:hover { - i::before { - color: var(--global-hover-color); - } - } - } - } - .contact-note { - font-size: 1rem; - } -} - -.tagline { - font-family: monospace; - font-size: 1rem; - color: var(--global-hover-color); - text-align: center; - margin: 3rem 0; -} - -// Footer -footer.fixed-bottom { - background-color: var(--global-footer-bg-color); - border-top: 1px solid var(--global-divider-color); - font-size: 0.8rem; - text-align: center; - .container { - color: var(--global-footer-text-color); - padding: 0.5rem; - } - a { - color: var(--global-footer-link-color); - &:hover { - color: var(--global-hover-color); - text-decoration: underline; - } - } -} - -footer.sticky-bottom { - border-top: 1px solid var(--global-divider-color); - padding: 2rem; - font-size: 0.8rem; - text-align: center; -} - -// CV - -.cv { - margin-bottom: 1rem; - .title a { - color: var(--global-text-color); - } - .card { - background-color: var(--global-card-bg-color); - border: 1px solid var(--global-divider-color); - .list-group-item { - color: inherit; - background-color: inherit; - // border-color: var(--global-divider-color); - - .badge { - min-width: fit-content; - color: var(--global-card-bg-color) !important; - background-color: var(--global-theme-color); - } - } - } -} - -// Repositories - -@media (min-width: 768px) { - .repo { - max-width: 50%; - } -} - -// Pages - -.border-bottom{ - border-bottom: 1px solid var(--global-divider-color) !important; -} - -// Blog - -.header-bar { - border-bottom: 1px solid var(--global-divider-color); - text-align: center; - padding-bottom: 2rem; - h1 { - color: var(--global-theme-color); - font-size: 4rem; - } - h2 { - font-size: 2rem; - } -} - -.tag-list { - border-bottom: 1px solid var(--global-divider-color); - text-align: center; - padding: 1rem; - - ul { - justify-content: center; - display: flow-root; - color: var(--global-text-color-light); - - li { - list-style: none; - display: inline-block; - padding: 0.5rem; - color: inherit; - } - } -} - -.post-list { - margin: 0; - margin-bottom: 40px; - padding: 0; - li { - border-bottom: 1px solid var(--global-divider-color); - list-style: none; - padding-top: 1rem; - padding-bottom: 1rem; - .post-meta { - color: var(--global-text-color-light); - font-size: 0.875rem; - margin-bottom: 0.5rem; - } - .post-tags { - color: var(--global-text-color-light); - font-size: 0.875rem; - padding-bottom: 0; - } - a { - color: var(--global-text-color); - text-decoration: none; - &:hover { - color: var(--global-hover-color); - } - } - } -} - -.pagination { - .page-item { - .page-link { - color: var(--global-text-color); - background-color: var(--global-bg-color); - &:hover { - color: var(--global-hover-color); - } - } - &.active .page-link { - color: var(--global-bg-color); - background-color: var(--global-theme-color); - &:hover { - background-color: var(--global-hover-color); - } - } - } -} - -// Distill - -.distill { - a:hover { - border-bottom-color: var(--global-hover-color); - text-decoration: none; - } -} - -// Projects - -.projects { - a { - text-decoration: none; - &:hover { - .card-title { - color: var(--global-hover-color); - } - } - } - .card { - img { - width: 100%; - } - } - .card-item { - width: auto; - margin-bottom: 0.75rem; - .row { - display: flex; - align-items: center; - } - } - - .grid-sizer, .grid-item { - width: 250px; - margin-bottom: 10px; - } - - h2.category { - color: var(--global-divider-color); - border-bottom: 1px solid var(--global-divider-color); - padding-top: 0.5rem; - margin-top: 2rem; - margin-bottom: 1rem; - text-align: right; - } -} - -// Education - -.education { - margin: 2rem 0.5rem; -} - -// Publications - -.publications { - margin-top: 2rem; - h1 { - color: var(--global-theme-color); - font-size: 2rem; - text-align: center; - margin-top: 1em; - margin-bottom: 1em; - } - h2 { - margin-bottom: 1rem; - span { - font-size: 1.5rem; - } - } - h2.year { - color: var(--global-divider-color); - border-top: 1px solid var(--global-divider-color); - padding-top: 1rem; - margin-top: 2rem; - margin-bottom: -2rem; - text-align: right; - } - ol.bibliography { - list-style: none; - padding: 0; - margin-top: 0; - margin-bottom: -1rem; - - li { - margin-bottom: 1rem; - .preview { - max-width: 100%; - min-width: 80px; - } - .abbr { - height: 2rem; - margin-bottom: 0.5rem; - abbr.badge { - min-width: fit-content; - color: var(--global-bg-color) !important; - background-color: var(--global-theme-color); - a { - color: var(--global-bg-color); - &:hover { - text-decoration: none; - } - } - } - .award { - color: var(--global-theme-color) !important; - border: 1px solid var(--global-theme-color); - } - } - .title { - font-weight: bolder; - } - .author { - a { - border-bottom: 1px dashed var(--global-theme-color); - &:hover { - border-bottom-style: solid; - text-decoration: none; - } - } - > em { - border-bottom: 1px solid; - font-style: normal; - } - > span.more-authors { - color: var(--global-text-color-light); - border-bottom: 1px dashed var(--global-text-color-light); - cursor: pointer; - &:hover { - color: var(--global-text-color); - border-bottom: 1px dashed var(--global-text-color); - } - } - } - .links { - a.btn { - color: var(--global-text-color); - border: 1px solid var(--global-text-color); - padding: 0.25rem 1rem; - margin: 0.5rem; - vertical-align: middle; - &:hover { - color: var(--global-hover-color); - border-color: var(--global-hover-color); - } - } - } - .hidden { - font-size: 0.875rem; - max-height: 0px; - overflow: hidden; - text-align: justify; - transition-property: 0.15s ease; - -moz-transition: 0.15s ease; - -ms-transition: 0.15s ease; - -o-transition: 0.15s ease; - transition: all 0.15s ease; - - p { - line-height: 1.4em; - margin: 10px; - } - pre { - font-size: 1em; - line-height: 1.4em; - padding: 10px; - } - } - .hidden.open { - max-height: 100em; - transition-property: 0.15s ease; - -moz-transition: 0.15s ease; - -ms-transition: 0.15s ease; - -o-transition: 0.15s ease; - transition: all 0.15s ease; - } - div.abstract.hidden { - border: dashed 1px var(--global-bg-color); - } - div.abstract.hidden.open { - border-color: var(--global-text-color); - } - } - } -} - -// Rouge Color Customization -figure.highlight { - margin: 0 0 1rem; -} - -pre { - color: var(--global-theme-color); - background-color: var(--global-code-bg-color); - border-radius: 6px; - padding: 6px 12px; - pre, h6 { - font-family: monospace; - padding-top: 12px; - margin: 0px; - } - pre, code { - background-color: transparent; - border-radius: 0; - padding: 0; - } -} - -code { - color: var(--global-theme-color); - background-color: var(--global-code-bg-color); - border-radius: 3px; - padding: 3px 3px; -} - - -// Transitioning Themes -html.transition, -html.transition *, -html.transition *:before, -html.transition *:after { - transition: all 750ms !important; - transition-delay: 0 !important; -} - -// Extra Markdown style (post Customization) -.post{ - .post-meta{ - color: var(--global-text-color-light); - font-size: 0.875rem; - margin-bottom: 0; - } - .post-tags{ - color: var(--global-text-color-light); - font-family: monospace; - font-size: 0.875rem; - padding-top: 0.25rem; - padding-bottom: 1rem; - a { - color: var(--global-text-color-light); - text-decoration: none; - &:hover { - color: var(--global-hover-color); - } - } - } - .post-content{ - blockquote { - border-left: 2px solid var(--global-theme-color); - padding: 8px; - } - } -} - -progress { - /* Positioning */ - position: fixed; - left: 0; - top: 56px; - z-index: 10; - - /* Dimensions */ - width: 100%; - height: 1px; - - /* Reset the appearance */ - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - - /* Get rid of the default border in Firefox/Opera. */ - border: none; - - /* Progress bar container for Firefox/IE10 */ - background-color: transparent; - - /* Progress bar value for IE10 */ - color: var(--global-theme-color); - } - - progress::-webkit-progress-bar { - background-color: transparent; - } - - progress::-webkit-progress-value { - background-color: var(--global-theme-color); - } - - progress::-moz-progress-bar { - background-color: var(--global-theme-color); - } - - .progress-container { - width: 100%; - background-color: transparent; - position: fixed; - top: 56px; - left: 0; - height: 5px; - display: block; - } - - .progress-bar { - background-color: var(--global-theme-color); - width: 0%; - display: block; - height: inherit; - } diff --git a/_sass/_distill.scss b/_sass/_distill.scss deleted file mode 100644 index d83fafd4263a..000000000000 --- a/_sass/_distill.scss +++ /dev/null @@ -1,126 +0,0 @@ -/******************************************************************************* - * Style overrides for distill blog posts. - ******************************************************************************/ - -d-byline { - border-top-color: var(--global-divider-color) !important; -} - -d-byline h3 { - color: var(--global-text-color) !important; -} - -d-byline a, d-article d-byline a { - color: var(--global-text-color) !important; - &:hover { - color: var(--global-hover-color) !important; - } -} - -d-article { - border-top-color: var(--global-divider-color) !important; - a, p, h1, h2, h3, h4, h5, h6, li, table { - color: var(--global-text-color) !important; - } - a, h1, h2, hr, table, table th, table td { - border-bottom-color: var(--global-divider-color) !important; - } - a:hover { - border-bottom-color: var(--global-hover-color) !important; - } - b i { - display: inline; - } - - d-contents { - align-self: start; - grid-column: 1 / 4; - grid-row: auto / span 4; - justify-self: end; - margin-top: 0em; - padding-left: 2em; - padding-right: 3em; - border-right: 1px solid var(--global-divider-color); - width: calc(max(70%, 300px)); - margin-right: 0px; - margin-top: 0em; - display: grid; - grid-template-columns: - minmax(8px, 1fr) [toc] auto - minmax(8px, 1fr) [toc-line] 1px - minmax(32px, 2fr); - - nav { - grid-column: toc; - a { - border-bottom: none !important; - &:hover { - border-bottom: 1px solid var(--global-text-color) !important; - } - } - h3 { - margin-top: 0; - margin-bottom: 1em; - } - div { - display: block; - outline: none; - margin-bottom: 0.8em; - color: rgba(0, 0, 0, 0.8); - font-weight: bold; - } - ul { - padding-left: 1em; - margin-top: 0; - margin-bottom: 6px; - list-style-type: none; - li { - margin-bottom: 0.25em; - } - } - } - .figcaption { - line-height: 1.4em; - } - toc-line { - border-right: 1px solid var(--global-divider-color); - grid-column: toc-line; - } - } - - d-footnote { - scroll-margin-top: 66px; - } -} - -d-appendix { - border-top-color: var(--global-divider-color) !important; - color: var(--global-distill-app-color) !important; - h3, li, span { - color: var(--global-distill-app-color) !important; - } - a, a.footnote-backlink { - color: var(--global-distill-app-color) !important; - &:hover { - color: var(--global-hover-color) !important; - } - } -} - -@media (max-width: 1024px) { - d-article { - d-contents { - display: block; - grid-column-start: 2; - grid-column-end: -2; - padding-bottom: 0.5em; - margin-bottom: 1em; - padding-top: 0.5em; - width: 100%; - border: 1px solid var(--global-divider-color); - nav { - grid-column: none; - } - } - } -} diff --git a/_sass/_layout.scss b/_sass/_layout.scss deleted file mode 100644 index 464b04f81849..000000000000 --- a/_sass/_layout.scss +++ /dev/null @@ -1,52 +0,0 @@ -/****************************************************************************** - * Content - ******************************************************************************/ - -body { - padding-bottom: 4rem; - color: var(--global-text-color); - background-color: var(--global-bg-color); - - h1, h2, h3, h4, h5, h6 { - scroll-margin-top: 4rem; - } -} - -body.fixed-top-nav { - // Add some padding for the nav-bar. - padding-top: 4rem; -} - -body.sticky-bottom-footer { - // Remove padding below footer. - padding-bottom: 0; -} - -.container { - max-width: $max-content-width; -} - -// Profile -.profile { - img { - width: 100%; - } -} - -// TODO: redefine content layout. - - -/****************************************************************************** - * Publications - ******************************************************************************/ - -// TODO: redefine publications layout. - - -/***************************************************************************** -* Projects -*****************************************************************************/ - -figure figcaption { - color: var(--global-text-color); -} diff --git a/_sass/_themes.scss b/_sass/_themes.scss deleted file mode 100644 index eeb4e4a45d95..000000000000 --- a/_sass/_themes.scss +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Themes - ******************************************************************************/ - -:root { - --global-bg-color: #{$grey-color-light}; - --global-code-bg-color: #{$code-bg-color-light}; - --global-text-color: #{$grey-color-dark}; - --global-text-color-light: #{$grey-color}; - --global-theme-color: #{$theme-light-color}; - --global-hover-color: #{$theme-light-color-hover}; - --global-footer-bg-color: #{$grey-color-light}; - --global-footer-text-color: #{grey-color-dark}; - --global-footer-link-color: #{$theme-light-color}; - --global-distill-app-color: #{$grey-color-dark}; - --global-divider-color: #{$grey-color}; - --global-card-bg-color: #{$white-color}; - - .fa-sun { - display : none; - } - .fa-moon { - display : flex; - align-items: center; - } - - .repo-img-light { - display: block; - } - .repo-img-dark { - display: none; - } -} - -html[data-theme='dark'] { - --global-bg-color: #{$grey-color-dark}; - --global-code-bg-color: #{$code-bg-color-dark}; - --global-text-color: #{$grey-color-light}; - --global-text-color-light: #{$grey-color}; - --global-theme-color: #{$theme-dark-color}; - --global-hover-color: #{$theme-dark-color-hover}; - --global-footer-bg-color: #{$grey-color-dark}; - --global-footer-text-color: #{$grey-color-light}; - --global-footer-link-color: #{$theme-dark-color}; - --global-distill-app-color: #{$grey-color-light}; - --global-divider-color: #{$grey-color}; - --global-card-bg-color: #{$black-color}; - - .fa-sun { - display : flex; - align-items: center; - } - .fa-moon { - display : none; - } - - .repo-img-light { - display: none; - } - .repo-img-dark { - display: block; - } -} diff --git a/_sass/_variables.scss b/_sass/_variables.scss deleted file mode 100644 index 93a1bcb91c65..000000000000 --- a/_sass/_variables.scss +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************* - * Variables used throughout the theme. - * To adjust anything, simply edit the variables below and rebuild the theme. - ******************************************************************************/ - - -// Colors -// $red-color: #FF3636 !default; -// $red-color-dark: #B71C1C !default; -// $orange-color: #F29105 !default; -// $blue-color: #0076df !default; -// $blue-color-dark: #00369f !default; -// $cyan-color: #2698BA !default; -// $light-cyan-color: lighten($cyan-color, 25%); -// $green-color: #00ab37 !default; -// $green-color-lime: #B7D12A !default; -// $green-color-dark: #009f06 !default; -// $green-color-light: #ddffdd !default; -// $green-color-bright: #11D68B !default; -// $purple-color: #B509AC !default; -// $light-purple-color: lighten($purple-color, 25%); -// $pink-color: #f92080 !default; -// $pink-color-light: #ffdddd !default; -// $yellow-color: #efcc00 !default; - -$white-color: #ffffff !default; -$black-color: #000000 !default; - -$grey-color: #828282 !default; -$grey-color-light: lighten($grey-color, 45%); -$grey-color-dark: darken($grey-color, 45%); - -// Theme colors - -$theme-light-color: #0000d0 !default; -$theme-light-color-hover: lighten($theme-light-color, 15%); -$code-bg-color-light: lighten($theme-light-color, 50%); - -$theme-dark-color: #00f1ff !default; -$theme-dark-color-hover: lighten($theme-dark-color, 15%); -$code-bg-color-dark: darken($theme-dark-color, 50%); diff --git a/assets/css/main.css b/assets/css/main.css new file mode 100644 index 000000000000..d103e2e14ffe --- /dev/null +++ b/assets/css/main.css @@ -0,0 +1,4 @@ +:root{--global-bg-color:whitesmoke;--global-code-bg-color:#d0d0ff;--global-text-color:#0f0f0f;--global-text-color-light:#828282;--global-theme-color:#0000d0;--global-hover-color:#1e1eff;--global-footer-bg-color:whitesmoke;--global-footer-text-color:grey-color-dark;--global-footer-link-color:#0000d0;--global-distill-app-color:#0f0f0f;--global-divider-color:#828282;--global-card-bg-color:#fff}:root .fa-sun{display:none}:root .fa-moon{display:flex;align-items:center}:root .repo-img-light{display:block}:root .repo-img-dark{display:none}html[data-theme=dark]{--global-bg-color:#0f0f0f;--global-code-bg-color:black;--global-text-color:whitesmoke;--global-text-color-light:#828282;--global-theme-color:#00f1ff;--global-hover-color:#4df5ff;--global-footer-bg-color:#0f0f0f;--global-footer-text-color:whitesmoke;--global-footer-link-color:#00f1ff;--global-distill-app-color:whitesmoke;--global-divider-color:#828282;--global-card-bg-color:#000}html[data-theme=dark] .fa-sun{display:flex;align-items:center}html[data-theme=dark] .fa-moon{display:none}html[data-theme=dark] .repo-img-light{display:none}html[data-theme=dark] .repo-img-dark{display:block}body{padding-bottom:4rem;color:var(--global-text-color);background-color:var(--global-bg-color)}body h1,body h2,body h3,body h4,body h5,body h6{scroll-margin-top:4rem}body.fixed-top-nav{padding-top:4rem}body.sticky-bottom-footer{padding-bottom:0}.container{max-width:1024px}.profile img{width:100%}figure figcaption{color:var(--global-text-color)}p,h1,h2,h3,h4,h5,h6,em,div,li,span,strong{color:var(--global-text-color)}hr{height:1px;background-color:var(--global-divider-color);border:0;opacity:1}table td,table th{color:var(--global-text-color)}table td{font-size:1rem}a,table.table a{color:var(--global-theme-color);text-decoration:none}a:hover,table.table a:hover{color:var(--global-hover-color);text-decoration:underline}a:hover:after :not(.nav-item.dropdown),table.table a:hover:after :not(.nav-item.dropdown){width:100%}figure,img{max-width:90vw}blockquote{text-align:center;background:var(--global-bg-color);border-left:2px solid var(--global-theme-color);margin:1.5em 10px;padding:.5em 10px;font-size:1.3rem;font-style:italic}hr{border-color:var(--global-divider-color)}.equation{margin-bottom:1rem;text-align:center}.caption{font-size:.875rem;margin-top:.75rem;margin-bottom:1.5rem;text-align:center}.card{background-color:var(--global-card-bg-color)}.card img{width:100%}.card .card-title{color:var(--global-text-color)}.card .card-item{width:auto;margin-bottom:.75rem}.card .card-item .row{display:flex;align-items:center}.citation,.citation-number{color:var(--global-theme-color)}.profile{width:100%}.profile .address{margin:.5rem 0;font-family:monospace;text-align:center}.profile .address p{display:inline-block;font-family:inherit;margin:0}.profile.float-right{margin-left:1rem}.profile.float-left{margin-right:1rem}@media(min-width:576px){.profile{margin-left:1rem;width:30%;min-width:256px;min-height:256px}.profile .address p{display:block}}.post-description{margin-bottom:2rem;font-size:.875rem}.post-description a{color:inherit}.post-description a:hover{color:var(--global-hover-color);text-decoration:none}.navbar{box-shadow:none;border-bottom:1px solid var(--global-divider-color);background-color:var(--global-bg-color);opacity:.95}.navbar .dropdown-menu{background-color:var(--global-bg-color);border:1px solid var(--global-divider-color)}.navbar .dropdown-menu a:not(.active){color:var(--global-text-color)}.navbar .dropdown-menu a:hover{color:var(--global-hover-color)}.navbar .dropdown-menu hr{margin:0}.dropdown-item{color:var(--global-text-color);background-color:var(--global-bg-color);border-radius:inherit}.dropdown-item:hover,.dropdown-item:focus{color:var(--global-hover-color);background-color:inherit}.navbar.navbar-light a:hover{text-decoration:none}.navbar.navbar-light .navbar-brand{color:var(--global-text-color)}.navbar.navbar-light .navbar-nav .nav-item .nav-link{color:var(--global-text-color)}.navbar.navbar-light .navbar-nav .nav-item .nav-link:hover{color:var(--global-hover-color)}.navbar.navbar-light .navbar-nav .nav-item.active>.nav-link{background-color:inherit;font-weight:bolder;color:var(--global-theme-color)}.navbar.navbar-light .navbar-nav .nav-item.active>.nav-link:hover{color:var(--global-hover-color)}.navbar.navbar-light .navbar-brand.social{padding-bottom:0;padding-top:0;font-size:1.25rem}.navbar.navbar-light .navbar-brand.social svg{width:1.25rem;height:1.25rem;fill:var(--global-text-color);transition-property:all .2s ease-in-out}.navbar.navbar-light .navbar-brand.social svg:hover{fill:var(--global-theme-color)}.navbar.navbar-light .navbar-brand.social a{padding:0 6px}.navbar.navbar-light .navbar-brand.social a i::before{color:var(--global-text-color);transition-property:all .2s ease-in-out}.navbar.navbar-light .navbar-brand.social a:hover i::before{color:var(--global-hover-color)}.navbar-toggler{border:0}.navbar-toggler:focus{outline:0;box-shadow:none}.navbar-toggler .icon-bar{display:block;width:22px;height:2px;background-color:var(--global-text-color);border-radius:1px;margin-bottom:4px} +.navbar-toggler .top-bar{transform:rotate(45deg);transform-origin:10% 10%}.navbar-toggler .middle-bar{opacity:0}.navbar-toggler .bottom-bar{transform:rotate(-45deg);transform-origin:10% 90%}.navbar-toggler.collapsed .top-bar{transform:rotate(0)}.navbar-toggler.collapsed .middle-bar{opacity:1}.navbar-toggler.collapsed .bottom-bar{transform:rotate(0)}#light-toggle{height:100%;border:0;background-color:inherit}#light-toggle svg{width:1rem;height:1rem;transition-property:all .2s ease-in-out;fill:var(--global-text-color)}#light-toggle svg:hover{fill:var(--global-hover-color)}.news h2{padding-bottom:1rem;border-bottom:1px solid var(--global-text-color)}.social{text-align:center}.social .contact-icons{font-size:3rem}.social .contact-icons svg{width:3rem;height:3rem;fill:var(--global-text-color);transition-property:all .2s ease-in-out}.social .contact-icons svg:hover{fill:var(--global-theme-color)}.social .contact-icons a{padding:1rem}.social .contact-icons a i::before{color:var(--global-text-color);transition-property:all .2s ease-in-out}.social .contact-icons a:hover i::before{color:var(--global-hover-color)}.social .contact-note{font-size:1rem}.tagline{font-family:monospace;font-size:1rem;color:var(--global-hover-color);text-align:center;margin:3rem 0}footer.fixed-bottom{background-color:var(--global-footer-bg-color);border-top:1px solid var(--global-divider-color);font-size:.8rem;text-align:center}footer.fixed-bottom .container{color:var(--global-footer-text-color);padding:.5rem}footer.fixed-bottom a{color:var(--global-footer-link-color)}footer.fixed-bottom a:hover{color:var(--global-hover-color);text-decoration:underline}footer.sticky-bottom{border-top:1px solid var(--global-divider-color);padding:2rem;font-size:.8rem;text-align:center}.cv{margin-bottom:1rem}.cv .title a{color:var(--global-text-color)}.cv .card{background-color:var(--global-card-bg-color);border:1px solid var(--global-divider-color)}.cv .card .list-group-item{color:inherit;background-color:inherit}.cv .card .list-group-item .badge{min-width:fit-content;color:var(--global-card-bg-color)!important;background-color:var(--global-theme-color)}@media(min-width:768px){.repo{max-width:50%}}.border-bottom{border-bottom:1px solid var(--global-divider-color)!important}.header-bar{border-bottom:1px solid var(--global-divider-color);text-align:center;padding-bottom:2rem}.header-bar h1{color:var(--global-theme-color);font-size:4rem}.header-bar h2{font-size:2rem}.tag-list{border-bottom:1px solid var(--global-divider-color);text-align:center;padding:1rem}.tag-list ul{justify-content:center;display:flow-root;color:var(--global-text-color-light)}.tag-list ul li{list-style:none;display:inline-block;padding:.5rem;color:inherit}.post-list{margin:0;margin-bottom:40px;padding:0}.post-list li{border-bottom:1px solid var(--global-divider-color);list-style:none;padding-top:1rem;padding-bottom:1rem}.post-list li .post-meta{color:var(--global-text-color-light);font-size:.875rem;margin-bottom:.5rem}.post-list li .post-tags{color:var(--global-text-color-light);font-size:.875rem;padding-bottom:0}.post-list li a{color:var(--global-text-color);text-decoration:none}.post-list li a:hover{color:var(--global-hover-color)}.pagination .page-item .page-link{color:var(--global-text-color);background-color:var(--global-bg-color)}.pagination .page-item .page-link:hover{color:var(--global-hover-color)}.pagination .page-item.active .page-link{color:var(--global-bg-color);background-color:var(--global-theme-color)}.pagination .page-item.active .page-link:hover{background-color:var(--global-hover-color)}.distill a:hover{border-bottom-color:var(--global-hover-color);text-decoration:none}.projects a{text-decoration:none}.projects a:hover .card-title{color:var(--global-hover-color)}.projects .card img{width:100%}.projects .card-item{width:auto;margin-bottom:.75rem}.projects .card-item .row{display:flex;align-items:center}.projects .grid-sizer,.projects .grid-item{width:250px;margin-bottom:10px}.projects h2.category{color:var(--global-divider-color);border-bottom:1px solid var(--global-divider-color);padding-top:.5rem;margin-top:2rem;margin-bottom:1rem;text-align:right}.education{margin:2rem .5rem}.publications{margin-top:2rem}.publications h1{color:var(--global-theme-color);font-size:2rem;text-align:center;margin-top:1em;margin-bottom:1em}.publications h2{margin-bottom:1rem}.publications h2 span{font-size:1.5rem}.publications h2.year{color:var(--global-divider-color);border-top:1px solid var(--global-divider-color);padding-top:1rem;margin-top:2rem;margin-bottom:-2rem;text-align:right}.publications ol.bibliography{list-style:none;padding:0;margin-top:0;margin-bottom:-1rem}.publications ol.bibliography li{margin-bottom:1rem}.publications ol.bibliography li .preview{max-width:100%;min-width:80px}.publications ol.bibliography li .abbr{height:2rem;margin-bottom:.5rem}.publications ol.bibliography li .abbr abbr.badge{min-width:fit-content;color:var(--global-bg-color)!important;background-color:var(--global-theme-color)} +.publications ol.bibliography li .abbr abbr.badge a{color:var(--global-bg-color)}.publications ol.bibliography li .abbr abbr.badge a:hover{text-decoration:none}.publications ol.bibliography li .abbr .award{color:var(--global-theme-color)!important;border:1px solid var(--global-theme-color)}.publications ol.bibliography li .title{font-weight:bolder}.publications ol.bibliography li .author a{border-bottom:1px dashed var(--global-theme-color)}.publications ol.bibliography li .author a:hover{border-bottom-style:solid;text-decoration:none}.publications ol.bibliography li .author>em{border-bottom:1px solid;font-style:normal}.publications ol.bibliography li .author>span.more-authors{color:var(--global-text-color-light);border-bottom:1px dashed var(--global-text-color-light);cursor:pointer}.publications ol.bibliography li .author>span.more-authors:hover{color:var(--global-text-color);border-bottom:1px dashed var(--global-text-color)}.publications ol.bibliography li .links a.btn{color:var(--global-text-color);border:1px solid var(--global-text-color);padding:.25rem 1rem;margin:.5rem;vertical-align:middle}.publications ol.bibliography li .links a.btn:hover{color:var(--global-hover-color);border-color:var(--global-hover-color)}.publications ol.bibliography li .hidden{font-size:.875rem;max-height:0;overflow:hidden;text-align:justify;transition-property:.15s ease;-moz-transition:.15s ease;-ms-transition:.15s ease;-o-transition:.15s ease;transition:all .15s ease}.publications ol.bibliography li .hidden p{line-height:1.4em;margin:10px}.publications ol.bibliography li .hidden pre{font-size:1em;line-height:1.4em;padding:10px}.publications ol.bibliography li .hidden.open{max-height:100em;transition-property:.15s ease;-moz-transition:.15s ease;-ms-transition:.15s ease;-o-transition:.15s ease;transition:all .15s ease}.publications ol.bibliography li div.abstract.hidden{border:dashed 1px var(--global-bg-color)}.publications ol.bibliography li div.abstract.hidden.open{border-color:var(--global-text-color)}figure.highlight{margin:0 0 1rem}pre{color:var(--global-theme-color);background-color:var(--global-code-bg-color);border-radius:6px;padding:6px 12px}pre pre,pre h6{font-family:monospace;padding-top:12px;margin:0}pre pre,pre code{background-color:transparent;border-radius:0;padding:0}code{color:var(--global-theme-color);background-color:var(--global-code-bg-color);border-radius:3px;padding:3px 3px}html.transition,html.transition *,html.transition *:before,html.transition *:after{transition:all 750ms!important;transition-delay:0!important}.post .post-meta{color:var(--global-text-color-light);font-size:.875rem;margin-bottom:0}.post .post-tags{color:var(--global-text-color-light);font-family:monospace;font-size:.875rem;padding-top:.25rem;padding-bottom:1rem}.post .post-tags a{color:var(--global-text-color-light);text-decoration:none}.post .post-tags a:hover{color:var(--global-hover-color)}.post .post-content blockquote{border-left:2px solid var(--global-theme-color);padding:8px}progress{position:fixed;left:0;top:56px;z-index:10;width:100%;height:1px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background-color:transparent;color:var(--global-theme-color)}progress::-webkit-progress-bar{background-color:transparent}progress::-webkit-progress-value{background-color:var(--global-theme-color)}progress::-moz-progress-bar{background-color:var(--global-theme-color)}.progress-container{width:100%;background-color:transparent;position:fixed;top:56px;left:0;height:5px;display:block}.progress-bar{background-color:var(--global-theme-color);width:0;display:block;height:inherit}d-byline{border-top-color:var(--global-divider-color)!important}d-byline h3{color:var(--global-text-color)!important}d-byline a,d-article d-byline a{color:var(--global-text-color)!important}d-byline a:hover,d-article d-byline a:hover{color:var(--global-hover-color)!important}d-article{border-top-color:var(--global-divider-color)!important}d-article a,d-article p,d-article h1,d-article h2,d-article h3,d-article h4,d-article h5,d-article h6,d-article li,d-article table{color:var(--global-text-color)!important}d-article a,d-article h1,d-article h2,d-article hr,d-article table,d-article table th,d-article table td{border-bottom-color:var(--global-divider-color)!important}d-article a:hover{border-bottom-color:var(--global-hover-color)!important}d-article b i{display:inline}d-article d-contents{align-self:start;grid-column:1/4;grid-row:auto/span 4;justify-self:end;margin-top:0;padding-left:2em;padding-right:3em;border-right:1px solid var(--global-divider-color);width:max(70%,300px);margin-right:0;margin-top:0;display:grid;grid-template-columns:minmax(8px,1fr) [toc] auto minmax(8px,1fr) [toc-line] 1px minmax(32px,2fr)}d-article d-contents nav{grid-column:toc}d-article d-contents nav a{border-bottom:none!important}d-article d-contents nav a:hover{border-bottom:1px solid var(--global-text-color)!important}d-article d-contents nav h3{margin-top:0;margin-bottom:1em} +d-article d-contents nav div{display:block;outline:0;margin-bottom:.8em;color:rgba(0,0,0,0.8);font-weight:bold}d-article d-contents nav ul{padding-left:1em;margin-top:0;margin-bottom:6px;list-style-type:none}d-article d-contents nav ul li{margin-bottom:.25em}d-article d-contents .figcaption{line-height:1.4em}d-article d-contents toc-line{border-right:1px solid var(--global-divider-color);grid-column:toc-line}d-article d-footnote{scroll-margin-top:66px}d-appendix{border-top-color:var(--global-divider-color)!important;color:var(--global-distill-app-color)!important}d-appendix h3,d-appendix li,d-appendix span{color:var(--global-distill-app-color)!important}d-appendix a,d-appendix a.footnote-backlink{color:var(--global-distill-app-color)!important}d-appendix a:hover,d-appendix a.footnote-backlink:hover{color:var(--global-hover-color)!important}@media(max-width:1024px){d-article d-contents{display:block;grid-column-start:2;grid-column-end:-2;padding-bottom:.5em;margin-bottom:1em;padding-top:.5em;width:100%;border:1px solid var(--global-divider-color)}d-article d-contents nav{grid-column:none}} \ No newline at end of file diff --git a/assets/css/main.css.map b/assets/css/main.css.map new file mode 100644 index 000000000000..82e93e664ecf --- /dev/null +++ b/assets/css/main.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../_sass/_variables.scss","../../_sass/_themes.scss","../../_sass/_layout.scss","main.scss","../../_sass/_base.scss","../../_sass/_distill.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAIA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEF;EACE;;AAGF;EACE;;AAEF;EACE;;;AC5DJ;AAAA;AAAA;AAIA;EACE;EACA;EACA;;AAEA;EACE;;;AAIJ;EAEE;;;AAGF;EAEE;;;AAGF;EACE,WCtBkB;;;AD2BlB;EACE;;;AAOJ;AAAA;AAAA;AAOA;AAAA;AAAA;AAIA;EACE;;;AElDF;AAAA;AAAA;AAMA;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAIA;EACE;;AAEF;EACE;;;AAIJ;EACE;EACA;;AACA;EACE;EACA;;AAEF;EACE;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAKF;EACE;EACA;;;AAKF;EACE;EACA;EACA;EACA;;;AAKF;EACE;;AACA;EACE;;AAEF;EACE;;AAEF;EACE;EACA;;AACA;EACE;EACA;;;AAON;EACE;;;AAKF;EACE;;AACA;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;;;AAIN;EACE;;;AAEF;EACE;;;AAGF;EACE;IACE;IACA;IACA;IACA;;EAEE;IAAI;;;AAKV;EACE;EACA;;AACA;EACE;;AACA;EACE;EACA;;;AAQN;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;;AACA;EACE;;AAEF;EACE;;AAEF;EACE;;;AAGJ;EACE;EACA;EACA;;AACE;EACE;EACA;;;AAKF;EACE;;AAGJ;EACE;;AAEF;EACE;;AACA;EACE;;AAGJ;EACI;EACA;EACA;;AACA;EACE;;AAGN;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;AACA;EACE;;AAGJ;EACE;;AACA;EACE;EACA;;AAGA;EACE;;;AAOV;EACE;;AACA;EACE;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;;AAEF;EACE;;AAEF;EACE;EACA;;;AAKF;EACE;;AAEF;EACE;;AAEF;EACE;;;AAIJ;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;AACA;EACE;;;AAON;EACE;EACA;;;AAKF;EACE;;AACA;EACE;;AACA;EACE;EACA;EACA;EACA;;AACA;EACE;;AAGJ;EACE;;AACA;EACE;EACA;;AAGA;EACE;;AAKR;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;;AAEF;EACE;;AACA;EACE;EACA;;;AAKN;EACE;EACA;EACA;EACA;;;AAKF;EACE;;AACA;EACE;;AAEF;EACE;EACA;;AACA;EACE;EACA;;AAGA;EACE;EACA;EACA;;;AAQR;EACE;IACE;;;AAMJ;EACE;;;AAKF;EACE;EACA;EACA;;AACA;EACE;EACA;;AAEF;EACE;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;;AAKN;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAEF;EACE;EACA;;AACA;EACE;;;AAQJ;EACE;EACA;;AACA;EACE;;AAGJ;EACE;EACA;;AACA;EACE;;;AASN;EACE;EACA;;;AAOF;EACE;;AAEE;EACE;;AAKJ;EACE;;AAGJ;EACE;EACA;;AACA;EACE;EACA;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAMJ;EACE;;;AAKF;EACE;;AACA;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;;AACA;EACE;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AACA;EACE;EACA;;AAEF;EACE;EACA;;AACA;EACE;EACA;EACA;;AACA;EACE;;AACA;EACE;;AAIN;EACE;EACA;;AAGJ;EACE;;AAGA;EACE;;AACA;EACI;EACA;;AAGN;EACE;EACA;;AAEF;EACE;EACA;EACA;;AACA;EACI;EACA;;AAKN;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;;AAIN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEF;EACE;EACA;EACA;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;;;AAOR;EACE;;;AAGF;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;;AAEF;EACE;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;;;AAKF;AAAA;AAAA;AAAA;EAIE;EACA;;;AAKA;EACE;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;;AACA;EACE;;AAKJ;EACE;EACA;;;AAKN;AACK;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;AAEA;EACA;EACG;EACK;AAER;EACA;AAEA;EACA;AAEA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AC9wBL;AAAA;AAAA;AAIA;EACE;;;AAGF;EACE;;;AAGF;EACE;;AACA;EACE;;;AAIJ;EACE;;AACA;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,uBACE;;AAIF;EACE;;AACA;EACE;;AACA;EACE;;AAGJ;EACE;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;;AACA;EACE;;AAIN;EACE;;AAEF;EACE;EACA;;AAIJ;EACE;;;AAIJ;EACE;EACA;;AACA;EACE;;AAEF;EACE;;AACA;EACE;;;AAKN;EAEI;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EACA;IACE","sourcesContent":["/*******************************************************************************\n * Variables used throughout the theme.\n * To adjust anything, simply edit the variables below and rebuild the theme.\n ******************************************************************************/\n\n\n// Colors\n// $red-color: #FF3636 !default;\n// $red-color-dark: #B71C1C !default;\n// $orange-color: #F29105 !default;\n// $blue-color: #0076df !default;\n// $blue-color-dark: #00369f !default;\n// $cyan-color: #2698BA !default;\n// $light-cyan-color: lighten($cyan-color, 25%);\n// $green-color: #00ab37 !default;\n// $green-color-lime: #B7D12A !default;\n// $green-color-dark: #009f06 !default;\n// $green-color-light: #ddffdd !default;\n// $green-color-bright: #11D68B !default;\n// $purple-color: #B509AC !default;\n// $light-purple-color: lighten($purple-color, 25%);\n// $pink-color: #f92080 !default;\n// $pink-color-light: #ffdddd !default;\n// $yellow-color: #efcc00 !default;\n\n$white-color: #ffffff !default;\n$black-color: #000000 !default;\n\n$grey-color: #828282 !default;\n$grey-color-light: lighten($grey-color, 45%);\n$grey-color-dark: darken($grey-color, 45%);\n\n// Theme colors\n\n$theme-light-color: #0000d0 !default;\n$theme-light-color-hover: lighten($theme-light-color, 15%);\n$code-bg-color-light: lighten($theme-light-color, 50%);\n\n$theme-dark-color: #00f1ff !default;\n$theme-dark-color-hover: lighten($theme-dark-color, 15%);\n$code-bg-color-dark: darken($theme-dark-color, 50%);\n","/*******************************************************************************\r\n * Themes\r\n ******************************************************************************/\r\n \r\n:root {\r\n --global-bg-color: #{$grey-color-light};\r\n --global-code-bg-color: #{$code-bg-color-light};\r\n --global-text-color: #{$grey-color-dark};\r\n --global-text-color-light: #{$grey-color};\r\n --global-theme-color: #{$theme-light-color};\r\n --global-hover-color: #{$theme-light-color-hover};\r\n --global-footer-bg-color: #{$grey-color-light};\r\n --global-footer-text-color: #{grey-color-dark};\r\n --global-footer-link-color: #{$theme-light-color};\r\n --global-distill-app-color: #{$grey-color-dark};\r\n --global-divider-color: #{$grey-color};\r\n --global-card-bg-color: #{$white-color};\r\n\r\n .fa-sun {\r\n display : none;\r\n }\r\n .fa-moon {\r\n display : flex;\r\n align-items: center;\r\n }\r\n\r\n .repo-img-light {\r\n display: block;\r\n }\r\n .repo-img-dark {\r\n display: none;\r\n }\r\n}\r\n\r\nhtml[data-theme='dark'] {\r\n --global-bg-color: #{$grey-color-dark};\r\n --global-code-bg-color: #{$code-bg-color-dark};\r\n --global-text-color: #{$grey-color-light};\r\n --global-text-color-light: #{$grey-color};\r\n --global-theme-color: #{$theme-dark-color};\r\n --global-hover-color: #{$theme-dark-color-hover};\r\n --global-footer-bg-color: #{$grey-color-dark};\r\n --global-footer-text-color: #{$grey-color-light};\r\n --global-footer-link-color: #{$theme-dark-color};\r\n --global-distill-app-color: #{$grey-color-light};\r\n --global-divider-color: #{$grey-color};\r\n --global-card-bg-color: #{$black-color};\r\n\r\n .fa-sun {\r\n display : flex;\r\n align-items: center;\r\n }\r\n .fa-moon {\r\n display : none;\r\n }\r\n\r\n .repo-img-light {\r\n display: none;\r\n }\r\n .repo-img-dark {\r\n display: block;\r\n }\r\n}\r\n","/******************************************************************************\n * Content\n ******************************************************************************/\n\nbody {\n padding-bottom: 4rem;\n color: var(--global-text-color);\n background-color: var(--global-bg-color);\n\n h1, h2, h3, h4, h5, h6 {\n scroll-margin-top: 4rem;\n }\n}\n\nbody.fixed-top-nav {\n // Add some padding for the nav-bar.\n padding-top: 4rem;\n}\n\nbody.sticky-bottom-footer {\n // Remove padding below footer.\n padding-bottom: 0;\n}\n\n.container {\n max-width: $max-content-width;\n}\n\n// Profile\n.profile {\n img {\n width: 100%;\n }\n}\n\n// TODO: redefine content layout.\n\n\n/******************************************************************************\n * Publications\n ******************************************************************************/\n\n// TODO: redefine publications layout.\n\n\n/*****************************************************************************\n* Projects\n*****************************************************************************/\n\nfigure figcaption {\n color: var(--global-text-color);\n}\n","@charset \"utf-8\";\n\n// Dimensions\n$max-content-width: 1024px;\n\n@import\n \"variables\",\n \"themes\",\n \"layout\",\n \"base\",\n \"distill\"\n;\n","/*******************************************************************************\n * Styles for the base elements of the theme.\n ******************************************************************************/\n\n// Typography\n\np, h1, h2, h3, h4, h5, h6, em, div, li, span, strong {\n color: var(--global-text-color);\n}\n\nhr {\n height: 1px;\n background-color: var(--global-divider-color);\n border: none;\n opacity: 1;\n}\n\ntable {\n td, th {\n color: var(--global-text-color);\n }\n td {\n font-size: 1rem;\n }\n}\n\na, table.table a {\n color: var(--global-theme-color);\n text-decoration: none;\n &:hover {\n color: var(--global-hover-color);\n text-decoration: underline;\n }\n &:hover:after :not(.nav-item.dropdown) {\n width: 100%;\n }\n}\n\nfigure, img {\n max-width: 90vw;\n}\n\nblockquote {\n text-align: center;\n background: var(--global-bg-color);\n border-left: 2px solid var(--global-theme-color);\n margin: 1.5em 10px;\n padding: 0.5em 10px;\n font-size: 1.3rem;\n font-style: italic;\n}\n\nhr {\n border-color: var(--global-divider-color);\n}\n\n// Math\n\n.equation {\n margin-bottom: 1rem;\n text-align: center;\n}\n\n// Caption\n\n.caption {\n font-size: 0.875rem;\n margin-top: 0.75rem;\n margin-bottom: 1.5rem;\n text-align: center;\n}\n\n// Card\n\n.card {\n background-color: var(--global-card-bg-color);\n img {\n width: 100%;\n }\n .card-title {\n color: var(--global-text-color);\n }\n .card-item {\n width: auto;\n margin-bottom: 0.75rem;\n .row {\n display: flex;\n align-items: center;\n }\n }\n}\n\n// Citation\n\n.citation, .citation-number {\n color: var(--global-theme-color);\n}\n\n// Profile\n\n.profile {\n width: 100%;\n .address {\n margin: 0.5rem 0;\n font-family: monospace;\n text-align: center;\n p {\n display: inline-block;\n font-family: inherit;\n margin: 0;\n }\n }\n}\n.profile.float-right{\n margin-left: 1rem;\n}\n.profile.float-left{\n margin-right: 1rem;\n}\n\n@media (min-width: 576px) {\n .profile {\n margin-left: 1rem;\n width: 30%;\n min-width: 256px;\n min-height: 256px;\n .address {\n p { display: block; }\n }\n }\n}\n\n.post-description {\n margin-bottom: 2rem;\n font-size: 0.875rem;\n a {\n color: inherit;\n &:hover {\n color: var(--global-hover-color);\n text-decoration: none;\n }\n }\n}\n\n\n// Navbar customization\n\n.navbar {\n box-shadow: none;\n border-bottom: 1px solid var(--global-divider-color);\n background-color: var(--global-bg-color);\n opacity: 0.95;\n}\n.navbar .dropdown-menu {\n background-color: var(--global-bg-color);\n border: 1px solid var(--global-divider-color);\n a:not(.active) {\n color: var(--global-text-color);\n }\n a:hover {\n color: var(--global-hover-color);\n }\n hr {\n margin: 0;\n }\n}\n.dropdown-item {\n color: var(--global-text-color);\n background-color: var(--global-bg-color);\n border-radius: inherit;\n &:hover, &:focus {\n color: var(--global-hover-color);\n background-color: inherit;\n }\n}\n.navbar.navbar-light {\n a {\n &:hover {\n text-decoration: none;\n }\n }\n .navbar-brand {\n color: var(--global-text-color);\n }\n .navbar-nav .nav-item .nav-link {\n color: var(--global-text-color);\n &:hover {\n color: var(--global-hover-color);\n }\n }\n .navbar-nav .nav-item.active>.nav-link {\n background-color: inherit;\n font-weight: bolder;\n color: var(--global-theme-color);\n &:hover {\n color: var(--global-hover-color);\n }\n }\n .navbar-brand.social {\n padding-bottom: 0;\n padding-top: 0;\n font-size: 1.25rem;\n svg {\n width: 1.25rem;\n height: 1.25rem;\n fill: var(--global-text-color);\n transition-property: all 0.2s ease-in-out;\n &:hover {\n fill: var(--global-theme-color);\n }\n }\n a {\n padding: 0 6px;\n i::before {\n color: var(--global-text-color);\n transition-property: all 0.2s ease-in-out;\n }\n &:hover {\n i::before {\n color: var(--global-hover-color);\n }\n }\n }\n }\n}\n\n.navbar-toggler {\n border: none;\n &:focus {\n outline: none;\n box-shadow: none;\n }\n .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n background-color: var(--global-text-color);\n border-radius: 1px;\n margin-bottom: 4px;\n }\n .top-bar {\n transform: rotate(45deg);\n transform-origin: 10% 10%;\n }\n .middle-bar {\n opacity: 0;\n }\n .bottom-bar {\n transform: rotate(-45deg);\n transform-origin: 10% 90%;\n }\n}\n\n.navbar-toggler.collapsed {\n .top-bar {\n transform: rotate(0);\n }\n .middle-bar {\n opacity: 1;\n }\n .bottom-bar {\n transform: rotate(0);\n }\n}\n\n#light-toggle {\n height: 100%;\n border: 0;\n background-color: inherit;\n svg {\n width: 1rem;\n height: 1rem;\n transition-property: all 0.2s ease-in-out;\n fill: var(--global-text-color);\n &:hover {\n fill: var(--global-hover-color);\n }\n }\n}\n\n// News\n\n.news h2 {\n padding-bottom: 1rem;\n border-bottom: 1px solid var(--global-text-color);\n}\n\n// Social (bottom)\n\n.social {\n text-align: center;\n .contact-icons {\n font-size: 3rem;\n svg {\n width: 3rem;\n height: 3rem;\n fill: var(--global-text-color);\n transition-property: all 0.2s ease-in-out;\n &:hover {\n fill: var(--global-theme-color);\n }\n }\n a {\n padding: 1rem;\n i::before {\n color: var(--global-text-color);\n transition-property: all 0.2s ease-in-out;\n }\n &:hover {\n i::before {\n color: var(--global-hover-color);\n }\n }\n }\n }\n .contact-note {\n font-size: 1rem;\n }\n}\n\n.tagline {\n font-family: monospace;\n font-size: 1rem;\n color: var(--global-hover-color);\n text-align: center;\n margin: 3rem 0;\n}\n\n// Footer\nfooter.fixed-bottom {\n background-color: var(--global-footer-bg-color);\n border-top: 1px solid var(--global-divider-color);\n font-size: 0.8rem;\n text-align: center;\n .container {\n color: var(--global-footer-text-color);\n padding: 0.5rem;\n }\n a {\n color: var(--global-footer-link-color);\n &:hover {\n color: var(--global-hover-color);\n text-decoration: underline;\n }\n }\n}\n\nfooter.sticky-bottom {\n border-top: 1px solid var(--global-divider-color);\n padding: 2rem;\n font-size: 0.8rem;\n text-align: center;\n}\n\n// CV\n\n.cv {\n margin-bottom: 1rem;\n .title a {\n color: var(--global-text-color);\n }\n .card {\n background-color: var(--global-card-bg-color);\n border: 1px solid var(--global-divider-color);\n .list-group-item {\n color: inherit;\n background-color: inherit;\n // border-color: var(--global-divider-color);\n\n .badge {\n min-width: fit-content;\n color: var(--global-card-bg-color) !important;\n background-color: var(--global-theme-color);\n }\n }\n }\n}\n\n// Repositories\n\n@media (min-width: 768px) {\n .repo {\n max-width: 50%;\n }\n}\n\n// Pages\n\n.border-bottom{\n border-bottom: 1px solid var(--global-divider-color) !important;\n}\n\n// Blog\n\n.header-bar {\n border-bottom: 1px solid var(--global-divider-color);\n text-align: center;\n padding-bottom: 2rem;\n h1 {\n color: var(--global-theme-color);\n font-size: 4rem;\n }\n h2 {\n font-size: 2rem;\n }\n}\n\n.tag-list {\n border-bottom: 1px solid var(--global-divider-color);\n text-align: center;\n padding: 1rem;\n\n ul {\n justify-content: center;\n display: flow-root;\n color: var(--global-text-color-light);\n\n li {\n list-style: none;\n display: inline-block;\n padding: 0.5rem;\n color: inherit;\n }\n }\n}\n\n.post-list {\n margin: 0;\n margin-bottom: 40px;\n padding: 0;\n li {\n border-bottom: 1px solid var(--global-divider-color);\n list-style: none;\n padding-top: 1rem;\n padding-bottom: 1rem;\n .post-meta {\n color: var(--global-text-color-light);\n font-size: 0.875rem;\n margin-bottom: 0.5rem;\n }\n .post-tags {\n color: var(--global-text-color-light);\n font-size: 0.875rem;\n padding-bottom: 0;\n }\n a {\n color: var(--global-text-color);\n text-decoration: none;\n &:hover {\n color: var(--global-hover-color);\n }\n }\n }\n}\n\n.pagination {\n .page-item {\n .page-link {\n color: var(--global-text-color);\n background-color: var(--global-bg-color);\n &:hover {\n color: var(--global-hover-color);\n }\n }\n &.active .page-link {\n color: var(--global-bg-color);\n background-color: var(--global-theme-color);\n &:hover {\n background-color: var(--global-hover-color);\n }\n }\n }\n}\n\n// Distill\n\n.distill {\n a:hover {\n border-bottom-color: var(--global-hover-color);\n text-decoration: none;\n }\n}\n\n// Projects\n\n.projects {\n a {\n text-decoration: none;\n &:hover {\n .card-title {\n color: var(--global-hover-color);\n }\n }\n }\n .card {\n img {\n width: 100%;\n }\n }\n .card-item {\n width: auto;\n margin-bottom: 0.75rem;\n .row {\n display: flex;\n align-items: center;\n }\n }\n\n .grid-sizer, .grid-item {\n width: 250px;\n margin-bottom: 10px;\n }\n\n h2.category {\n color: var(--global-divider-color);\n border-bottom: 1px solid var(--global-divider-color);\n padding-top: 0.5rem;\n margin-top: 2rem;\n margin-bottom: 1rem;\n text-align: right;\n }\n}\n\n// Education\n\n.education {\n margin: 2rem 0.5rem;\n}\n\n// Publications\n\n.publications {\n margin-top: 2rem;\n h1 {\n color: var(--global-theme-color);\n font-size: 2rem;\n text-align: center;\n margin-top: 1em;\n margin-bottom: 1em;\n }\n h2 {\n margin-bottom: 1rem;\n span {\n font-size: 1.5rem;\n }\n }\n h2.year {\n color: var(--global-divider-color);\n border-top: 1px solid var(--global-divider-color);\n padding-top: 1rem;\n margin-top: 2rem;\n margin-bottom: -2rem;\n text-align: right;\n }\n ol.bibliography {\n list-style: none;\n padding: 0;\n margin-top: 0;\n margin-bottom: -1rem;\n\n li {\n margin-bottom: 1rem;\n .preview {\n max-width: 100%;\n min-width: 80px;\n }\n .abbr {\n height: 2rem;\n margin-bottom: 0.5rem;\n abbr.badge {\n min-width: fit-content;\n color: var(--global-bg-color) !important;\n background-color: var(--global-theme-color);\n a {\n color: var(--global-bg-color);\n &:hover {\n text-decoration: none;\n }\n }\n }\n .award {\n color: var(--global-theme-color) !important;\n border: 1px solid var(--global-theme-color);\n }\n }\n .title {\n font-weight: bolder;\n }\n .author {\n a {\n border-bottom: 1px dashed var(--global-theme-color);\n &:hover {\n border-bottom-style: solid;\n text-decoration: none;\n }\n }\n > em {\n border-bottom: 1px solid;\n font-style: normal;\n }\n > span.more-authors {\n color: var(--global-text-color-light);\n border-bottom: 1px dashed var(--global-text-color-light);\n cursor: pointer;\n &:hover {\n color: var(--global-text-color);\n border-bottom: 1px dashed var(--global-text-color);\n }\n }\n }\n .links {\n a.btn {\n color: var(--global-text-color);\n border: 1px solid var(--global-text-color);\n padding: 0.25rem 1rem;\n margin: 0.5rem;\n vertical-align: middle;\n &:hover {\n color: var(--global-hover-color);\n border-color: var(--global-hover-color);\n }\n }\n }\n .hidden {\n font-size: 0.875rem;\n max-height: 0px;\n overflow: hidden;\n text-align: justify;\n transition-property: 0.15s ease;\n -moz-transition: 0.15s ease;\n -ms-transition: 0.15s ease;\n -o-transition: 0.15s ease;\n transition: all 0.15s ease;\n\n p {\n line-height: 1.4em;\n margin: 10px;\n }\n pre {\n font-size: 1em;\n line-height: 1.4em;\n padding: 10px;\n }\n }\n .hidden.open {\n max-height: 100em;\n transition-property: 0.15s ease;\n -moz-transition: 0.15s ease;\n -ms-transition: 0.15s ease;\n -o-transition: 0.15s ease;\n transition: all 0.15s ease;\n }\n div.abstract.hidden {\n border: dashed 1px var(--global-bg-color);\n }\n div.abstract.hidden.open {\n border-color: var(--global-text-color);\n }\n }\n }\n}\n\n// Rouge Color Customization\nfigure.highlight {\n margin: 0 0 1rem;\n}\n\npre {\n color: var(--global-theme-color);\n background-color: var(--global-code-bg-color);\n border-radius: 6px;\n padding: 6px 12px;\n pre, h6 {\n font-family: monospace;\n padding-top: 12px;\n margin: 0px;\n }\n pre, code {\n background-color: transparent;\n border-radius: 0;\n padding: 0;\n }\n}\n\ncode {\n color: var(--global-theme-color);\n background-color: var(--global-code-bg-color);\n border-radius: 3px;\n padding: 3px 3px;\n}\n\n\n// Transitioning Themes\nhtml.transition,\nhtml.transition *,\nhtml.transition *:before,\nhtml.transition *:after {\n transition: all 750ms !important;\n transition-delay: 0 !important;\n}\n\n// Extra Markdown style (post Customization)\n.post{\n .post-meta{\n color: var(--global-text-color-light);\n font-size: 0.875rem;\n margin-bottom: 0;\n }\n .post-tags{\n color: var(--global-text-color-light);\n font-family: monospace;\n font-size: 0.875rem;\n padding-top: 0.25rem;\n padding-bottom: 1rem;\n a {\n color: var(--global-text-color-light);\n text-decoration: none;\n &:hover {\n color: var(--global-hover-color);\n }\n }\n }\n .post-content{\n blockquote {\n border-left: 2px solid var(--global-theme-color);\n padding: 8px;\n }\n }\n}\n\nprogress {\n /* Positioning */\n position: fixed;\n left: 0;\n top: 56px;\n z-index: 10;\n \n /* Dimensions */\n width: 100%;\n height: 1px;\n \n /* Reset the appearance */\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n \n /* Get rid of the default border in Firefox/Opera. */\n border: none;\n \n /* Progress bar container for Firefox/IE10 */\n background-color: transparent;\n \n /* Progress bar value for IE10 */\n color: var(--global-theme-color);\n }\n \n progress::-webkit-progress-bar {\n background-color: transparent;\n }\n \n progress::-webkit-progress-value {\n background-color: var(--global-theme-color);\n }\n \n progress::-moz-progress-bar {\n background-color: var(--global-theme-color);\n }\n \n .progress-container {\n width: 100%;\n background-color: transparent;\n position: fixed;\n top: 56px;\n left: 0;\n height: 5px;\n display: block;\n }\n \n .progress-bar {\n background-color: var(--global-theme-color);\n width: 0%;\n display: block;\n height: inherit;\n }\n","/*******************************************************************************\n * Style overrides for distill blog posts.\n ******************************************************************************/\n\nd-byline {\n border-top-color: var(--global-divider-color) !important;\n}\n\nd-byline h3 {\n color: var(--global-text-color) !important;\n}\n\nd-byline a, d-article d-byline a {\n color: var(--global-text-color) !important;\n &:hover {\n color: var(--global-hover-color) !important;\n }\n}\n\nd-article {\n border-top-color: var(--global-divider-color) !important;\n a, p, h1, h2, h3, h4, h5, h6, li, table {\n color: var(--global-text-color) !important;\n }\n a, h1, h2, hr, table, table th, table td {\n border-bottom-color: var(--global-divider-color) !important;\n }\n a:hover {\n border-bottom-color: var(--global-hover-color) !important;\n }\n b i {\n display: inline;\n }\n\n d-contents {\n align-self: start;\n grid-column: 1 / 4;\n grid-row: auto / span 4;\n justify-self: end;\n margin-top: 0em;\n padding-left: 2em;\n padding-right: 3em;\n border-right: 1px solid var(--global-divider-color);\n width: calc(max(70%, 300px));\n margin-right: 0px;\n margin-top: 0em;\n display: grid;\n grid-template-columns:\n minmax(8px, 1fr) [toc] auto\n minmax(8px, 1fr) [toc-line] 1px\n minmax(32px, 2fr);\n\n nav {\n grid-column: toc;\n a {\n border-bottom: none !important;\n &:hover {\n border-bottom: 1px solid var(--global-text-color) !important;\n }\n }\n h3 {\n margin-top: 0;\n margin-bottom: 1em;\n }\n div {\n display: block;\n outline: none;\n margin-bottom: 0.8em;\n color: rgba(0, 0, 0, 0.8);\n font-weight: bold;\n }\n ul {\n padding-left: 1em;\n margin-top: 0;\n margin-bottom: 6px;\n list-style-type: none;\n li {\n margin-bottom: 0.25em;\n }\n }\n }\n .figcaption {\n line-height: 1.4em;\n }\n toc-line {\n border-right: 1px solid var(--global-divider-color);\n grid-column: toc-line;\n }\n }\n\n d-footnote {\n scroll-margin-top: 66px;\n }\n}\n\nd-appendix {\n border-top-color: var(--global-divider-color) !important;\n color: var(--global-distill-app-color) !important;\n h3, li, span {\n color: var(--global-distill-app-color) !important;\n }\n a, a.footnote-backlink {\n color: var(--global-distill-app-color) !important;\n &:hover {\n color: var(--global-hover-color) !important;\n }\n }\n}\n\n@media (max-width: 1024px) {\n d-article {\n d-contents {\n display: block;\n grid-column-start: 2;\n grid-column-end: -2;\n padding-bottom: 0.5em;\n margin-bottom: 1em;\n padding-top: 0.5em;\n width: 100%;\n border: 1px solid var(--global-divider-color);\n nav {\n grid-column: none;\n }\n }\n }\n}\n"],"file":"main.css"} \ No newline at end of file diff --git a/assets/css/main.scss b/assets/css/main.scss deleted file mode 100644 index fd8c311c32cb..000000000000 --- a/assets/css/main.scss +++ /dev/null @@ -1,15 +0,0 @@ ---- -# Only the main Sass file needs front matter (the dashes are enough) ---- -@charset "utf-8"; - -// Dimensions -$max-content-width: {{ site.max_width }}; - -@import - "variables", - "themes", - "layout", - "base", - "distill" -; diff --git a/assets/img/posts/satyajit-ray-1400.webp b/assets/img/posts/satyajit-ray-1400.webp new file mode 100644 index 0000000000000000000000000000000000000000..ddf1cdf202e6aeb5443639873e4c42f02232f513 GIT binary patch literal 147844 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

+tx1|yMf%B0{U=kp`0B-(K|>T7m4L65x3EXj zc4HZk_ZXo+!qSy6Wv|v9(*)8IKupF_VBT12?|MTPRcw)u84c-OLuROFjtg8Q*ya+R zzXO6&RDTic8t~^9j4TKg(-8XUkrCslUS9Q@Kuci@HXhM;aN5|n6Lin!LssroE4?FU zlOYxy_mdEUnc0R_vR$EvLkceG09in$zhnncL8Wgn@s*!&6gg|NKL3|esVAp@IW*8H zwM|5M%Y^R9Vv;sgN+azyHd%RlW}lxzYK95IxMTR54Q*KH_u^X{bChGf(0-xH9T!k7 z(gwT=5C`LfTtT$6%<*=bAj!$8ZyycW?SXQvmSWV`--0PMi)WQ}J|c#*z93Lq=vLl6 zzGf9d;dFxdHk$o)bt9sAhdH?r_{*bVLl;X{+HL1_U=ehNQ*8*F2l{ZL5DX@G2?+QrIS%WjcwHuo!wjtn=iyGwI_9B?Iw#iU3^|>P zJX(e|o=e%8cA6B()aRWUv@S0b=vkT0KJBtGZa zZ1U%ftCl+E+QhiuP14R&=`$IE#{<#+|G_15JocFJ4=#(vgBn-X0%wi$@zc&P`JXWC zJOn;zT1yl)yU!pDIU)MlRDC!HdUG@@^@DKc&-xTx${RXno0xaIjRQ%bNkW&@AVU3Y zYp;*2F$!O114NXF$(JyWPS!*yd1>WLtP_j!5Eh^5t3LJFsag$A2Vn6UgF5|P&!>mi z78G7xn2W#}^fx~7Lm>a}P-eKc(odDF9CzlHfgs?9HxmBZkN4aVdSHFslj1}+qx04} zE}e@QBt_$7!JEi+uE%BefhfeWVETEI0Pc-$hS5r~80~E#qpLBZ1tp_TdcSL~&ZqvH zmA??Oj9cg<#UyE~(?f8WQ5h2;k+GQ@9F-m0-^bu4{{lg3zl6DCP=;bhB=#E!{Gp2n zxV$zUd2DeNDp!~A>aC5a>R}#?d|{RTK9nRbDJ9C+T_~sekW#q0vJ&>~sT^PuYIv>N z&DlDdgq*V0P~f>tx4^at9>V53$^!V7%#KS{wk({m4%wAbW3yf;GN|;l2bZwFq7(fE z75}J%eAEGbiWr5Da4VEHw8E}KB2FA$XfwRP{2R*4Tu~AKb0Q~0xDK9_2l#;WqU}mE z69>UG3w|^tZUj5tI`T~B5o@vI3-lYT){$cT6)X|XI&1!meRCs#sf5+mRJ zIj)Kp@6y93a0WVL5KVbKI<2m*SWLpK9#agNYY1<0H509Nn`C9gz0Y?&DVJEhld+K$ z8QZnorIJXdD^zr`=Y+vLvmrY`7$>{Vz0Vz_xZ|cXmWtG3*odf7D`15hAmwkEN!TA` z)vUj)q=uJLWV9ZkFC7PC(^4|NH#_I(~jnCdb0nIS_-vd(aDUo*rp_ z-2HT5GSO-@)`m_|B!KzZ)6H6F0~SbQF+MDmazlRM8Ap6qltC%u)R6r(F!n2!uiGb7 zMXW#~WG$#5U}~CD{-u@n>#Y|(A<;U!8xHqB7qeV;HL3eQfBZUHADhDzpXott09&=J z*o5BNS z?@RCzPViF$@gwJ%z1c3z$Z1lF6INJ-sstDu zP7KJcgR2_aksJ~1+;PC%QR8|+U!9Y>w^6MMgzf~tcNYH%!SRh%*TZi0XZoRfu4(LQ zXbrhZpt=uOmadihc~v>eXM8K^i}n3HK6$kcpQpwdHMT}kFuw3XPLg4Ltd51Qt99IG zGx!}`k1WuNT8t_^Nj4eTxmTs8W<%gWm8%nB3!HIP>rr4vHO@N!v%f}!0t{K0oH#&V zY=At>jt^ju98w{?DASt?eys$49huFN14E<(HOy&QH(l*Dv!yvMUd2jRBp0Q z&kVgRHSA|Hk&rP%%3%Mwb8}VUxxhk?I6bPa$)j8d6kq*z+C~6RJQZ`+`@`#CaH_Es zkS%L{i{_t2_1y1Xt89mE$Z~~xBsW*Mjy%5|zGchtN4lS`)GJQQ*gE#?Ij8|&q!E{e zSj^AD>StUZq?V%o&>*p@2f7Hgq3DxU$h{eB7uei`Gnvb#$albczZJTQ8jt|N4L5y< z^oBK+CLs3gN}8vMv(9cOxgVX;&T|O_ngQKZmmnFe=V^AzkY>JfnrJj)ifA~PhBDyf zia&KoIE=SJg!<+DK?L#=h-oRRBeEAq;9c5NKisF|u_N}KLVoz}qqGX7E^5Oi?K4t1 zQID#8W{?%07o=T$74gXv4wVFH-$dGntL;;n_$Fq_H4{EuOL$nuAE{+(11S}i z+k~jmB7tU2Y#LzF(;gfxLL&YkG36hm8VZHovstVf zLC<-GUO}9?=ROWAF^C*qI^kec(Exs#-FHXC zq7f)~A)U;u-224aRW7Jv&`*dj(9OcMy1vDrhLe>)k&vk{;wU*cwWBPl;>B;W0@#j? zdEQrt3|xdAOW?ER-{h=v|3znJT$f1l9Z&OpcZcHnrM-;%-q&QbHz{st(y8JQ?>^io z&v89aNwNWwvufq0Fj&DR+uW|8;s<&zkKLrNr{4fSL}75A0m+^dg!~<7q3~tZvaG|) zXGbE!Pd38WmPd!=3Yy$$X~~Y)F(2S%f8QoTR&CpE9uw)vfrUl&q=8{%|Aii20u&P|x*Rs9KW|WsO|X8)=ddGuMn&w}cl5^wQ+#kOYMGf;W~g z;Ac=>C=s93p>5|j=AnMi#gijn|}{Fdf!pc+xjcaICp{oMNU`5h_KWRB&l8o zvjAWf=(83~xduDnSe#==I2&a2?=m}6#U;D|Mf-=-D$pXASuQ!XAEsyFJpgOJICGfw z_H_RwQT!hX5erzP5pWm)6JERQAOQ%EP~=X(t6c*Wkp<`5EKPhWVZl7F5Rj9gKT1D9!n3zQjw@8Yr#2eiMMoVW=HQe7(a0VQTm} z&{h2;wo8+fSqk7G4k3v5$dvJ|HKiY25#qenjfb-~w)%N%u7s*JmS52^+n<=ZNjv$( zLyai~zR$vo(69%rJo%YuJ<1j;;b2M^^p5590OwM00;=Y~{23hJLr(+sI)q2P#F&Lh zy^Xt$o|4z4>w)rj@lOw6AwMv&V`f-}_~T0J)9Ld-91|rb7Z^5>N>oin29SYgaqwHM zz-%!gzVvFbZ4a1YT`S(drL@=9a6BjpKI-+YE#^trqZ%2ESR@nFQx#TCeZG^PtYumr zdn0(MvbILqzno-aSf5hgjU=11>)G>C@#lb@ZO&imz?OTKCRc#lL~aRn*!4%|%BJ8q zdbX^I1*Q^k5P3?e0Z5D%Y+U_c4t|Uv`!3w7w0r`9#joX{yPxma0~Z^9JLLUdnJ-~N z3=A=V?qHdC44!-|1_~brjX&G?xC89SKQ7)PV*7@{RJ^18`?;p!{$*SB3um$id0dck zP!OCnDZkJQ=+_kfD{1qA&<8(^n1*KzM@kH{L}xTaplgL%R$|1OrA7s))ktzj5z6s0 zRM`xqPeO!bvEvL%3fqkD)V#);((Zj*pW>9e;G>fZ1YEDYJ`*}kZ;(w%6;WC}uc6zh zHvm^0Z_qf?(aevIpB^Haf(EVca?i~DMIC<;64K?ub!>BXJ4GHL>WB<_B4f-DIz6jq z{vS>3+@wQ@;Ar*eK*dYWJ7p9KRZ|rRSu-+gJP%Svl#e>j2zV+4h)9GEmc-sj+%XWjXHRFFveN_p2r~v)D$v#iC-D{Ir#M3e5+pWJfA>}R3mIH}+*@8b1TAmRK zDwv_;(*uV38AVqXrfnxS0|O-Xq+D+=*tUPJ95ynX8g>jdrftoM+9y)=tWfje^~EhX zX9`@b2E_FkajbhbxQQC@TC}?b(c)jS=A8g*bq|^3>aiLuDlcd+az>glkbu>q!i}ck z%o3_Kvb%$+#U0#P1KHeufmy3@FZQfWg{eO=_t?FjsG-|>p)+~UePgYTX6gNw4|;7- z&+lrn-kWENgfy7_b8ev0%kioP$?1f2fN$|5M3zzSfsk8!;8E+fk@ZDx?6f2tLs*nF zZxh%)0za@ooAFJCC=e>gi3hb6 zeBg~S%UN=Q{y+beLG(!pF!i*8|V#m~{3LAm2#4^aT9pPtJ0a^?hXh}K-2 z*;x|5_>)h-8x{EW^*T`$G-PDEa_d<2z+Hyy5p&PTL^;h_n<4TgNcfRuy=Lw$2Claa z^Pv?KB?vF!+kn*oCVvQTn+efdzYLjf2HhfrxdVz8v@KT*!*sLki9X? zfJT6^>3Qq)Wcm|LrsV9C`?ytkcBF0bpcRX1>d)l@`3bzkJl|O(i=j~zJgQd;%^+_h zvf`uMOr}QIq#fQ{?>R>vnU&EU(xbRaU)R`LD3J%KB*0aYbv6>{(5?F40-=qn?It>& zYz2w+glf;h)pscsd#s%7kdX_4HNW%*V?+2mBry*(W(Es8r|8clfi!xdrGn*P=#?6P zr%X=Y9sD-(+{^ECb`5QQ+)wnpl=Ji7IYq{*;Tj#amx0~V|2}YgP4I*bN-I*1ORZ) z4iCU-z`i7JXGstjc=R#$CWX*2byrci1~Hg%GK9w1-m&VKxEDM@0?TxZfa_$ak%X2N zAsr15PJuu;JKnOk&H?Ubl7 zm;9y`7Fh0+O~ckM6#`kquPaG`>)eYH&+=>KATX zvzmQQaOOyXT5hUeBMe$Z?O8p&r1|BEjzRiL52fY%;3ME)jX6@bTIO_^)cy3F2WmUe zB ziR;;OzSmA?YlpE^50ff@1{3J#yy{){P3a8W$hajIycQJQ6N0*kmg!6t5#qa`KHPsA zEhL8q9RTQxFO0)2s^^|eXF)ps_n?W=yY7xtt;}<&$|}bvDXp{>x+FbdCLCvbHMsW- zFMBrHPQ}9ADJSX|N7%^E8(KMGK!3nVY7x=WGr6SZ8AjqT_xkH%W#5Z$yVPA1-cmnU zp(wA~j8z=k-?Fme3Dhb)+UH;$CHTc2E-rm+N$1tSK^9_7MsZ;oTHHmWZ_K_|N=8kSaN(|h&@XF4~?$tySx!RWZ2$zAX9yFHF*-}Qtx{H_ZJ?8U< z+4?afWT5ef;!mGO6HC!z*JwAJCbRp%^FHjGSSAzKHFXW%=rk&O)0||)0he17?6Z-g zA@nK~dn|PG9_*1we`fZ2?tHa)Sb_GHN^JD~63y+#qBEJk)MWO7?;Hd$zsFX}F>}Au z!1u&jyqU%iK?cv3?}M}RadbWQSmqGz6T0eej*$twc@in8H{nD*wXUNvQ$}6sbraUo zsQW|IKeXmaDG6rzeL(@K&FB~)n)XwF4Y^rb+vrji-^~tzb^%Q3+$)}~N;JwC60ps< zcioB)QE~ZI<7Z>0$JaWTO#zaU%_%V{a}SW&)9wATG*NKtrkK-vWW}wA!MPNf>NG%6 zaPE~_3dd@~-nLZB3?}h44cNHAYPSHuH}GoC$SHo?uR0%b6TQD#&#N5ND`vcike>rG z*PX0CwdJHl07CB#x(waXdHZqIa68dX@8W&?6g|l##%;Ye;z^TeV0%eNAiN zdh6zpSXx-!si0u;43=B*xZ7Zsn5277OMC=OLDuYeu|wUta2CRsMNtxD*AL$)P| zH2Wpy7sl_6oo5ZCxG|X0ieqW!rv;exsWW{hj@KrCQ^-t5irgwdo50w9g4XVH#2_H= z5rB1r%}ayL9lfJ6_sa6>*`->=xs@JcLuYrfGBkJcI!U6Wo%lE-1ls*YxWOPEr@0*R zDB)+?7E)=LGp97Sv==%Nv{b;Wy*g`a1WR&3!Su<~db40_&_){V_87M(mk*l^e{qu{ zrFB%qhgnby$pK#$#mvfrQkJ)}BgAN5{__-xAFLQ6fTw=C!8kA3bZ``rPt9sslkpdBUm*X}RaeuCcq`HxvD zVr`I5sG@RYuWrVTg>1r~4pyZmI_KW$=CY;A)oZch#JiYT@8W|En~dFQz>Zn8^@BZ= zmm{yRD#P2Rhl|o#K`aKyY6qoSs?uzqRa8f1jkLm&4@J_g-@&+4njtBtQON$hfmFHmJ| z&Ps!{&2r|MY^@&h*1FC@YgwyQH7n=@jG=PE!P5{i!hq4B!`j!6 z8^roIU+g(3!S%vAMO^HxCUxrX26wbk3T(GsQY?n+TC+FT*$?O2pUX~nH#`vf7Lb;A zK`wjNiX|B~jl6if%I?JQ$;903x~Qc*>`eyQDJlgYQo#UAn>IIWM&WK!PLfR?zyfUd zdlX>a`%Wu(1!I0l%RYse%BRc_nk$a@19U_Jt3})SSH<~*y*M4x2@2U*XCpvC5r`fi zDh-GW&1G*yV4CFb<7Ji4Mhz#s`z5j1xv!APusy?MjBYnPu?C#;b=Y~cMZ|VR&^(Ng zO?q@;vo_pgAm1GMN)qh6o=@4yDN{67UnqIxNFqgp2yG}~I0L07s`DbSk3O=Le(nkdBJaA%K64?~@9gbW%5)?I5w=#eD!-TGrta#@jDzVvFVg`n-F`dgWG zqaqvBlL}0+62Hz%b+vKFcT zg#pneq`Gq8)ww{vg+n_lY?Js;Sv^u79A~&GMr#hX81+Yb{V5kC5`f9l>K3RZv$_P_nGSgE3X-b2w0UG`;u%w0Wxa!;w*5+l@$(DIxZE{1K@Eli}Bqp}$RSdKnHd#EJHnrSo18b?gP&|V>hg%Kc^ zjhB;NaZt|8qoWtebXycu0=0BmE$fCImcym3@gw0FkE&}2+!@6hXadehE*gpD}SP6eox}e~^09@F^AB!$yPNQmRf< zv6=kRIYP=!{DF32x$Zg{OXV$BO_;y4WOj5Y^VX#c7yjtC8i#r0A%(r6(~cWg+q^<7 zBg_Z)IKN_je9VwCsVV8Suwo_YuWN))9fsNlE@&%MOqZC78-}2cva*vr#eWv3j&{L| zG|dL6eTE#*Gs;lM+}J^@bF~KK0$3g*W;4_M503FClt?8Gfez;A3~hNR0Tir8{;j%= zwK&t(kw!QYe3=o8Q&S9#yIbLb#I><6ech#t>ZjDPMO{2&AQ&}gcL0fGOgx=6_B9{0 zQbl;O)nyM1$~W9)aZO-r4Ry+vMg54TEFxTdK&;Yugkc4D*a+;yOKp1|#H#nzbQ>p9 zMnuX>U7EWp)f!dqHHqK8Qz2V9TwYW1gGxUQeab0%DLmtp8?jiUmfvYO4a*{#8E|UL z4=vL{eMJ0IKO^w)Ec1CnZ4|R1^w{szPf>^9h23~Q?CTc}SWyu_LaW6m8sX zTf%1&f&Wd%XUy`LxC&s+M}=ii&!kq$MvPz9q##Z04}8xk3yp;t0GC#PJD#{fgEO&^ zux5OS>?ny{QT(*v-(yE=W3g~En>aPNU-!AZKIpImO=%cA-ENep4wb7XF1_x8h2co6 zmQZtiR>)33#<6bkHO5_Lo;*@-`JXi%guyrh-8xt<_aczeKgWxK$pVEAB~QVnk{g_m zmIa_t1eu98Py$Z^Xi>A=-R_c9e3b#(`3Vhx9E{fo}zH}RyhbQUC)6^$+vIkj9EKXU}bo*;y`l$7wXyjQGx^%fKB3)RmZ z?WJql`0vNjWYzF$g0>-iY~&fhcmH76A5QiXs4)ag}nUB9Q`rabG{?Sh%|9Quk zzdu91(WGi&GG*&Bsmfl`M^y2#tKA>PBW-yzwqEkZ7r6r~wCD3nlDO+n`)SCiwx19Y z*Az)G*pdW4%|jd$YdJc*8FYbuqbx);mE=PyS?g%x1yI0)EGnB9!*rObQtL~2l!;D@ zFH)#}$8IDvaUKZm<(DF=1#6s;;fqlzI~9 z0)a7$M@!Si)617TuQbe_n)rP)gKueWNRdI9M@#*usT|3rF%pjvG(Efh(Vc|^F%Ao4VzIXBE$i0L*&mo> zMXgX%?L!h*K_spGV^|XQ|~>^*RPV^VPPZOMjho7n`u(cZP3K&Pj1EgyB@3|aRi(` zr*d%JDgWZUK1nViVNdQnvBw?x$DbFjLJU{M3eva2vcsxRNfBLt{d`2wmyi{LI7bDM z%Pi`!uo!f`G=V*x*cG}IHLRA73fuD z36k?x*b+_vf{b0#P24+#;+X20n_S>9sB2pYAbCr=D^bzFYxg#^sk%B=$=9mNX@(ng z!QtM4q!oJ*YHr@kS`KmDTN18*gMnKkY4tRyoUa%D?=qj=@}qKUW+zvhS%;~wUDuyO z+?tX{pndj!TsQL&9M_$gm_53TMCa{AfYKLrQ8?X+y>BX|_+5Ww{Igars4FER3K$=< zPxGw|c{Co0+)Eb`mgz_M)Sdh~*smgq+u_(_<&%E+_6YDkx0J%Ss9J1@>52zZ)c7Z= zD(r~VCZ-Y_F1R~Nadq-f=wmMQ?Ted|nY-V+R)`AGK`T8-IcU0ZyYU_h1R+3Ugq{M7 z%8^*7z~Ea^uKk5y94G4c>h9&ORTHuG7g9{1tC0Ag73l*pIJPe6Z^DdO z3<$XKo7h_wAT@FlzrQ2klc4f+g^)5)SYnDam_pREb`lmXsNm%3po7Cdo;D@Q3sQF< zoFw#Y0de3m4jn_qpi)kt+-L?1e2A)4_0{dT|3_}SRR|wOdYRe5aiFx&ktj|Vu(X#_ zXI;2%t7T-g+ACAK_c!z)VJ&>^FgJIS2HolQhUB!d*7BvI&O?YQIrpU;TsL|2} zH#vRRLN^pZok=AwHsX>4w%7R-3c|_FX#GC}9gyTbmG%v5GHQIxAxeEeTAnHFG0zlc zw>+nq75;JQj@Z6@GQyT8<36GHoKlHyCQg0Sx~!gmN^Y~134j^u7uxe7Lol9qM)q)n zn)Dt8>=Zme2a{0D(1bH#ayT49@9n~N(`f8kT~Rf;;cm4_ZsWRst#&gOlA)K-JPz%Q z7pj6nZ#4iB30VYk%P?p$>$()JvU8ZPpWvyU<|JSPrul}oYAjm?IkXH4GA!+6Ah$NM z$WA;#LiDHP_^m3UYQ*>tJU*fO*8MUAy)Nje!v&Y5|FK;f@Fk_%aZ#m5+dI8y}dj zL(_GA@)j3K_E;wDt;Ss*`$rbU&W&9$3X;ot4R2N&o~+1mC@OQ>!u!Xsso*eh2C1KF zg^`np^X)i7zLUq%o&(ee2ZG@1Fdh0@(31WSseBl;`<5a*qS{{x_v5RuQFs<8u!5)F z4kQK4!DxN5yjV6dIkK$JndV%B3T3tUN^f|PFdn)m8OHA)rm`kP zPIEMGVc}dixp?H@;LMt{Fde{v$*=D9yN%V}CjrjqB8NB8tiZ5Tu}Q;UoYUNq85Y@n z^{RWy4J+<8JtOpulR7O3WV8HZNg58S33swD+64wC+tAriQHY)HnGCeFu$Lhzg4D6k zK#Sy!=|1}M6>u%zBXkvg%Bs(n@~^BL&d$6Yke>wddGROIr7u=q(`+xU|VJFdNfA8nME`sVjsY6NE_J-k&CpP zxd~=15rvIDq`x6cW@+be-wrBT^8J(q0Qpt0so=EZ$l|m7pzAnLZG%DsNu!gR;p-+& zq!*baL`oK0Rwt~IY1oIp@9vC8#z>iGmmBNK+NvBd6$A{!X6rHWIvg-B;?gEMfwqzP zj%_U|pSERGR6qMyR}{+7Lo)|(@0pOV*BmUlC-Nk>Yh=|k_%{*80P$YuZi~b4#1EFQ z<`4d`x^sFmHaxUUhIMVg;{Ra3z957mRYHX#%Omods)(ceorYLh&`Q9)DB6A*EqJmE z$>(z1wWj!%BF7!JO$(h<`zbtt9yqVUHkh7nhto03xlY%smCSvG@o97wdPe{_;RQ7M zqZ9U5uqtbgW~~PX2V#j*h8;-X?f5ItbdwdwP^)r{b3$4nR?_XYSR7E8x>6*d&x%fi z2uBszV$eLIkJa2Dw%qTMM5@Y>YJjn(W6>WY;T_+%?j^|hYya`@ror(gPO2LIX#0+7 zl{|X?Vo`rn-uxkTl^N~Afd)q2685?8_~z})b~-D0jR43I72Sfk2W;fvL^L;mc2GER zO;=-$Oi+U0N1OGkw=uH?j)>5Yl33x0yaKN7jI9_p;>Ah!iNWoZO0ctwng$omnj;q6 zxNk6qjuR<<5Z9zRE}^^`^9N|~7*V71>RfbxHg3<&1V)={r&2u_S_`M^w$6I;bA#KM z!z0Jw3>yk^-#FyPcl31BuyEu#4P5&LzLhX~z=61ycTq50=9fOS5Npeg#Oz_74?i9_ zB7a(M@!$Y(cPZg$!#=M?^9<7cZ-g_x^>fx<;4Ju&@=D8&i6aVsqq2#!Lm15Pm3*J$ zf{(8L=?JR@v!Viiseer}dg2KIP%?U5@H7aVi?tSEsx-j6-%YidCxh&Oowq+;%L!{? z-m-_`NF*peh|vLnUYptq*?qQJ9E!fqp55}npRW3>+)K`90pwBRHLg%qqp06(STMn; ze_L(0cZUP_{`4Yp>6p+f$2OQJs$0gHUcozppKbQ*I<(JnGRUf(t&2skC2gN(m!_xL zQte;g7dpu>QwG6x&*_R>7~{7nn^8}j(B0Ju=R|BovoZKS-q+K*yK{q?{E#MA4$Q~JC>Z99=dHUlkStd!D;VkV} zw3#anRTfME@Be4Z$rSEp%w#bXg@(X?Ljli}aX{*5I5m2^!}Q_wBx{*EzS}w|xo)aT z*kC;;!DxbZn#|RZp`Y#7Pw#(9y6={ty6d@XE%N2ZK#k`qb%`G8Y7P|c2Jcii7m z1B!zO%*won19dH@x><7-zP-m|_ViTFs-bXmG;izmH+Cl7in;cv#H!le$I8{L%A`sK zm!r3{sk|XK8cyGGI~-7B08ITdj5WKQ-9D3jo(!Y!xE>^1QRh6a>PVYhVdctp=IOP; z6)(4Sk>jnDOq-RS;E3LkX>xf?nS zSx(e7az=W##I!KG30gu>fGiYo*x+MZjy@+ln;nx>0I$8A+(*=$r1(&ZK@jyV2j6SX z`GY0E5LN<0U$RS(5<4QQvytQ9qi{alEN5Uf%5dt%z+!P6XRWRUvxM0#5?8ijgcc*#l!^*WXh^kK* zP*#mE{{JAnoO$&3JD4f-7SD|rO1?Z&tAUpmlgms^2&aRT@Mn-RW2Gab*~7q%je97@ zb@Jav8Y>;Q@Ub@2kFD=d?%G>Qm5!=+gR_E3_BqW@=()_x5tC)Tomg%kkx+QnVqrhH z0W3bqBc0Y5bGJNpe(@p?hJL3G?uEIEnsK52PP=wC3_nD}Nlb zQ)3~$kY!TGGG#&!K})V=Xc<-=+Q;hoTn%y6xV<~CX_!ItM%8hV5#IJEZ^U#ZY630K zN?!j!a59V3dS;D87iuAmiq|wnbm+(!kHbia)R{lPl)UX%SRWSwhB*{~2~x4JkSDBL zO7Cs2*~05TlA_>2ap;%jv0;{|QMos*2}%iR65kF&zyP{L(H7s5Kv?^}Hr?X7p*`(E zTR6zmWmc;)#*R5CCV!^)1OJ3rO6Dw{UG=o9%k|l4|6RpReG2Hs$Pb#F>z$x>$B%@> zc%+!;jhL*>&2{e54bh4MLv5!mcXzO5oLOaLclD2+SvpX^&NW~F^2 zS){{@KmI!^`j$|O&_?M7b#yn?{F_hYnN#J3zD;HYXTtTK#8h3l^Ju{+Zn?y3NooQp zHm<=h;h85HF(ZhkJ#tlaXq?>hYdZGlT6g2N`Vt_N+xvQkVj)iR)(fSCG7BNB!4%Da0=*xo%g zME3+wy$Buz1;%5-g&9{4J3m395H*EtU?$gr029bXpNSXBbkXuTlIRU8$6sl8x`>3`t)_c3 z+0xhPXhiXAhKXN#^aId((Ud*le1uJyep~-bTx_F?K`NsQ1N-TxEjk@ZNr!;1LA>Pu z(OyLgl~uBP3j|-zG&ohb+@pCKKDXwH z!%TlD-B(B8wFxETd|0x-2`z2yBU z8uvyQK)l+gEIu|)VdqsJ92AHvMiPVcRudmxJMB1Dw;c3KlY!%8bE#)|;4)^L8 zQ(vUpwOlax>D!gg~W@>RS;a_%+@``i$)IY{B||;Wdzk`EP^AajC(0g z(Mu*4;OTDR@(9wkj78SW9cmw^DI_e>{P#Sia*&?bjG9_wTais}rc${mmfkZX^0L$Q zsWarz5*f^B#jOiz>EwZ?JxKylkb&}WD~+;nj`;Chky>e&T8fu&H#U);wpHL}dMnvO zTuln%d&QD}vk(Rd@#O5|3P2~hmMPUsVu{DPu4(F5gi}pW7BAscv9NN|FpI~x*c`}XSww2es_H&SU{>1##Ajz9W(TF3=ci9wKzvF+nSJnD z{taiQA2)v6c0qM;dzl}OVPT=?_Xq!zxDLK5l12WSp;Q|IYGGK=@N@-PHDIWe(hRku zo?i8GkQcDsdW|w^ zj4MzC<4e&iZJK+%*8mv2eCu7>iz&4T%ZxUiN}o6tr&#FVF!)=hAhbftJ?3yLfVLsG z=5OmbIYkJpQle6{vqhj>WPcJ^-Mcv&7+AH={osvDe9xv(4XIxH7^wMi3v=|hVzJl` zo>v?y`~YI5QA-eSdmz}mC=!{}EMnhs8eL^ht2+sGR)V!aGjyKpuVbLKLieXIaAkSl z?<70RRv{!SN}Wb{I~AU0^!oMURgl;qVvPN+Y^o4(WBQ>+8^!*S4l1Es2qqe@GJE_| zz**Qi3*IK$_epnaR)CW+tv_`8s*fUZjI{tt+K;FtS{}-n%AU3xY`*#3-1I0Md%59# z;upiW*M16Nmgh@R<~E+|>QpY`>Gx8T*cWilA#f2nkitPcBO;;$h=O=NU53)d>S(7$ zCksnS%_~;;AtSZUkMr8+9x5vbrVX&{qJO+u?FYmG>juIC3AS?ktNWIZV)Wb%BHM;? zH1hrO8nweX^S%1RKWct(FVsAGQ2wfW*lmhEVj?Zl91dUXFb-{QM`d9j*ndstU<;G< zqB+jMd`eA2cXa#*#-brT;#%LkhY~pOrkW8hsZ2(SNH@)?C6ZA=W1Ra$IR-9?C8NFH z=AAgM)Ju zV9T^GSYB#gm)sJZ3~t+YSfv^eu;pPtIYJM6sLLOz&z`$Z@zn6a%bB`7IE#PGLXme# z$q)%3fOtB{QeRE7jW8WA@?I|ZYMzpp&tbAyGrj;X18W{Od+x>h1whc@*Jbwb#QepY zzUg+C2apLt^XZWM8rZVvnc`n07<`p~y<7UC;{I{B)0wGIs-V99Kv=Xv6o%hQN)Xbu zMX*R!Z{39lYzpqsB_5}Dv{bFvTSuoS-kZ79Gf@Yr<*bHTOwAd&3TZjO>hPCK=1ryqX){2!@`FZ#FZ-bXzm;psIOtco5qei zNLEp3C?SvuV6y>LO&V^(8z{PgD?|%*bC-4kD$KA^0Worc+<@(0>>Z$9OOyfq5Id)F zGN}d5t!gtRml)JUMYYJ4+qCJ~7HcgcFIOItvT%;nfui?MhN|JGBf3H-7A`+o7q>m@ z_~cYG9OXkN*dv&z*7P9c7ACBZwVAfYUbpEzEu;_>=uyWGZML?ZEj`vF&G$st0hpn4 zsDZH*3jDo7j50fzH|^voV1KiCFN(^nI@BS-0K2H%RBEot%1Xjfxc@CMe43OMMbBQO zfek~-IA`*HZcI9nE<1PYoOZrm&Pmq!0yL`jS_UDjKhoUHCqkZE z@5gJC{72#Vx>%HS|Du7)#4aSlRZ%VcXyu7_YEckl=snp%paqtTcmFeL@lBRr#|X1k zfFKNg1158c9I4inS|!_%dKzuGm}kq{{rle^dRJ_9qA- zZ*od%xBNfS9?=ziubWt05yLV5oJK*HjT5YCpjEPJUxO=5miV{>V!$?txWGbZ@GqYA zPBaLSOMzrIcTTBDV36ZB7B3Jp6d1bc%KxssOQ&caaJ@|2DwnN5UVa) z5?d_yY)}MrrJpmQewe091`tX?;jyx_9r;bJ=%fU=U4sT*;CP~@G%i`kPVkjvGMDuj zmAx1rUk3%gl|=4hcDipgO%dXK4W}AT+EtGxkh_)ibSbUMoYL)aX-Arfbg4}FEiqv_ z{>95xX*kb)xL|GM0orpQ4rV-y7cB9b-qsZMr?F`Bl8!mQ!Bxu=cb2cv4vZGZP$(E> zaU5m#*cbmpt3(fOg#a3%rT?w%VI2`w{6F!ZpI_XJ{{XoS(ej7HIWQ8nKeW&GdgDns zGw}Xxw2sWzYIlnV>~xXH3rH~sg7TKfdF#srjpv6`Y|#-iSW!wVD3DpE+V-nJC2Q90=c=D zk#A2OvBeniPq}zvwa^z;#yZO3=)78b&-QKJoEm!jk83I~^q|)d84zm)n$M!rAwYA|S197%0xv!18tx|($`uTjaA-8bMox`%MI%4)Ld7<@` z^^B4*M@~DQ<)cF+kol^d$2(|c=OK_C0uU_V-s*HJ3cMV+&~(dy6vSjtm!KZ`jaMX z;^O=8NKRsiA{>)sOwGF$*Kr5P4?YfFYzsLx%9PI1yF_6!fQpaKrZgw*Ak1g|a|^4z zz0TU?j^!dU_$=x(jk^Yr4zM<~1|xLUl4+h$Xd)KeM(iU*)GM!ZGQJ$F{%D!lXVS!L zui)>!nPvy#ZNFdO!c!M~F7R&1?$GW-%4(~`_E6*VNQPB+Oc^J1=j;WTzWN9FJKcT< z{gXwqxe}`hUz};tNSO8q7H)VG8Jv>OqLNr_S(~AH5Kb{5h6y7GVfpdEAj&lL?s3XJ zqj=WaUk6~WKD^#SbYT< zu5x|%no#{1N)dB`>BC-@Sz?x}Bou-?NM{HI?7HC?8eVCIY)KGpzoq)&aU1RA;g|lTZZ?$4I1e|7lEG{ZiF00QBEAU;(Zv?Ssq-7bDsu%RQjNW?*=Ld7F??kM zc(VMZ$H^5PeschCh(L<+(Cw%2&d+uvh_{WSU+hn+gsyULvq& zPpfs+^S6SRygxS0=j9c>1m5SGHCXTcxNt;2H^xEAt7(nFvYG*+=t#tg?>T(KPP2SJb@RG+g7WCIa|G_RaLOTi{3c_tn16&sutmu zn3-=%#5c^cTDx9EkvRH4R`kJh$zXD747oQY5d|pwOI0UvR=@)`m6v1Esn;~|MS0-1 zNio(p@V+9M%8K?emUqAGBI`4g;3euK6_{zC-HiNFC!!RY39dSeU*U~!NkrmVO)sF< zc(Qs2*VO(&7QO#1Bez*_BcG^pcwD=@TMg3ka_riVj6~Ab4#^?O;dS1x0{^b@ZE3bs zm%gH|0N^ptr)>6V)2MEO}(B*%0PRl2dP~@dvV8nc5KQ z#pSK&#uvphJzsLD2~CJB*&fs6PN-fkYYRmz?FJ6c^Mo9RIX2j`n`n^VuLwp0?Kl8C zSUa?Uxs{39RQ`MGFVLvy)B4{_Bm4BEmHHL{vb%ges&t2R{Z$un)U0da^o^rwNeRGF zyuQ-;_#iMAGm&GnwN~l149vfLd~3zMZ~H~lHzag-7*ZEzW&1w>7N=q~Gp1~={t>S~ z4aUPmh7cUNVAQ2X&HJC9OhRFru5~)JYND0dcfAGZ;3GR2WqS-4# z9jJDd3OKkh;6`XCP!&V`yOA@rT+eRTL5sFi4OXMQRJVxR&4K+(%&+|}Nm|-sEr@Ms zfkuQJ4%M%aVlAna%$36@I#NHO$l}Iyc!JO{2fQ-bnhWoqaz~{J>fEd6z`=u!G8fZM z*$lK^r$J_r#*D~So^}fiDxPA}05fuvaLtm}8q8%OWQtZC;?{5<2B0oM_gZ>th;^Wx zz`NYrUGU}zbuJSJfr)dcvO#2a42f(L#IpqnC}-@>YQJwyZX{-(DIXtYsi| ziK6&t=_SKu{(ciTeR%IOLAsIv+Um_17*qRvD0Zl%>l3idtg@%6QV48B7f`|1FGn)A zFMjQg=3{8S>&E`@Z99fFjVLV<8+g9Y94E8Zv%Zz3Y!lyd-g!SF%s}N|c5hc(DUj1; z`5WL%6rxtVrfPmvxXdSK)8T@hu(j?*N0z0UJPpVPa$^NAM3h=9Q5Vc@6IkBPP3|t> z*0i4LK2+leMgHK->emcoI_wsHvm1VCRyIF*=deU)i~?`5<_%^ey0yzoerIbVmEys6 zDL!|`7i8M(dYU|r1*Rg_B471KbtH($L4cmb|1+2&((*b}^p{3{+-F0TKjN*hoEjUx zJuYG{+JbQL?KQuo-5i@{@c)2EAP9CKV+-?A0CP19LXgv(ZdFrGJ>MmT%}UBw*`k{a z_11NuV{YOu)bVTEj8x*W!%$c3vuy)bz^UKlPU*}yu^x_E;}QZvSUr3mMLh~xn4O!2 z(lZWo@PeC^_+{^tTDG0rOAsfb*6l-IS{W6l&=%sgqH=N*0OCp!)uQ*qtQc~Z4FON| zIZvOIY`*kUIB*L^D?3W)QbRLdpCxIY4E%wcNV*())cI#lo?TzX(Hi=GC(dOjCAcxy z?`G-Qw))muM>B&I(QrtVaMNS0J>%uGM<6DtL9#aqX;m}muTy-$qVSm3rajARWJ|Ak zmroXnDBR+Syk0mvL}MVpRuK2LZ^~8uBTm`bJ@`b&Prv8sy`-}ymz4(((R&E0j4h`UuZ}Hd6L8Z`SHo1Zs>J|B%9Whp!+n{7mW}cD;+n{M8F3N1k>=c*Wbu;Ow2CVtRKVm>1#hM)_c2QRE0L- zvW`9i>0iW(``bZX$Qn{?EL`tX_<;1nN4yAhWR4V86s=YWo;Y=k^C9R14t`YqgtV8} z`+2E@Icr})S1q=j^|h;t=}!2hC8kOjCu!LYcMWN|j* zjr<{-T|w2SE$z)%uNGHE8(po2Jm$d^-Z^mvYl0owm7s!-T4Vu$&9*29Ow}tC<7BNzqE-s=HrAXA6$Ui4tZpklP@~R z2r0H9i?AC`R*!yML97>`qa7I6T$!q9xb#B`z3mSF|RT#C-Rg-qjNG@g_x?XpD#B}Cn zOV7$^ZGRMO$~lNX*&|CkOq{8E`^^0ow`HT75=ZF444ajOhXZesI&E14@I(WOP zA%AWmp;9VT{#^({oL{W`>8>v_2oFt5EwW4+egh`w=q>5V8wKxd9YGBPHWw+D1zMkR@yT z4c6G;4Nbees>_I-*=~xTVrw`(^M6rz`j?I^Y->f^tJ=TaeHQPJ>6{ygOet+=2(AKw zPOb&b04pSW@F|d-uY&SgR%RZbXoZ=GY}3Gg@&)PWFFuE~fJv#-b zdndu#g(jAu17H$$U-XlnIwDW4)gkB=kokTOhcL^51Z}TY`O9z4Wc~+MT7cPt>p8{) z5a>EdMDYIm0qr*A!y#=RUJO2(%YA+3vujZ~GsPugpr{Mjlm!sbZ1gc%c%xX@rhIB; zy(T|N-O*OXdJqWL+|v$PHXWc076_{Z(u&%G5Q+Wj8bGfJ z`_pkd^$h-0ljU$ndDg7y1de}o>3M|aiR}LHRPs?tT*(bWLJ%FzF6oZC$#+Z|9^Q ziNA#c;2!XvY4^}9{Q!m@5|J}TbGQ%kS9;+f+Us3974$+sGjzD<+%k)YWvR>K%Pb0i z5BfNl6L7*YEs7l301`#8gRdS7K9Df{4UZA|wgSkR41tC*3eGtTD9(5yze$O8dNXu? zYv+-iX-*4tgHB!a-Li2ZW`M-zw;V6)jQf95>r%xvk7?~=(|J?2&E38y*}MUkKKavX zIr&td*4@mfjs8V!0ibkzl}i8MnN0UGAAf?*@htz~KYo5ft&j%J5E(={+CE;vFte`5 zJ$Z!*Ug@Oy_M6K@lbLqO`OieBgXT@vPxfEXQa- zm9`APg~k{GA*m44%Gs&8LQfj zXYpe$`Qhwl^FL%Tp;wWUCUQdPHOFUJvtT@$(qWg#p|N4n(GM$7I18e5vQ1WJ#c~k4 z*=+ecb7*|34&^^VP9f>s@el8GYj>4=L^dy4uo;>$o_b^s?U;$4f|Fyf>m~0cAs6E z&`$%B&74G+9)Qjg&G7+G6)mn?#%J#qeVKUFMkiPI9Wd|J{lhmUY&&7msUKYR0?@yz znuEyAw4IfVs><}zMq1Txv8dat6^JF{nEez*pN`3n<1>zPF)g_m%IOOTYAOC8Adc9q zdXS)oAc+9!p^Becx^7@X5yAztt8M8Lc|o8gJSz<3Zh=IWGMGCJjePpIc28tSP$RDm z8`_ycsJsPH>`g}y9|{*E&6iI;j5oQ;9iEL*JfZYHW*ZvFeo)M}QvR?QZV_G(3LpKK zy`0~}EGY%2?gA+s$9{Bsjx~fv!SirS`l%XG#e-(9A@YC>i;Q05xa%#h!z7NDE0RV9 zXpbi;9kj8aVW{u;$x})_2(cS3-0%omji;z*w$d(60Td{6@!QK?gpErENe*$?L$>tV zjca4CtsRN&sCz4j_-_Q2z4p)YE4(awrNuQ2Rr9zkaZCQTfd&Ts2-S+gqG%o}lQ)hA zDoe(K_4gMbuRHhMqb*7aKJ=Vf8R_z~x_2v59E$4mxXlr7F~1O-RG1KEl(T01eP88n z;!H50C%6FNMtvk?&#v5-VW6j=@(_A?sZ14Ya!{*WJ zyYd?Z1=%Wo&_&o3QMW=K=Uc^fvgzH|i&x7=AbMA%_b2KCB=UVB;o3U=Ukwx1vx=MD z)phR;>Ufj{*k0qyIHic~YgUOMh=~tgfK$PL%d*AduNZUbVFongjPcJ%-F`ugKi{W9 zR)ay^z+BkGpU1k?Z0$xkIcQ^L?X*J=Qt%p14ZqQJ26bgKnDm?D1vS7I@#FIZjz{-C z!N_}u#F!zhTJ{03P3mr}2cyLKI8Z{ZQEUYls?)+!v((TH3|?$XyLJ(k%!FuAV=O9V zf5j~}pL|T1EOthYL!7bl>V)d;R1p!&0N%0Mv`MTG?ZRm5a;nQdY1!@_GOVRxu;f&>ScU$Z?F@>7K=&LrTvdP#h zC%8-8KrIWumqZ4^!GHse&b#@sRmE`s9250Hr8r1C<6?3U@>?KeyZAPyb`K(I*9;YR zG4jRL1Dxr`gJ4<9v?MzqU5IU(xZdhUe1l5(pvk=_w zQHori1GrJ=L0&39q|1$Q3DG?EfdhYiFnuv&l>@+5yzd|2WQf{(;1rZtP{D?Z^0en9 zIzgfPB$J1#I~+%T7X;ot{h-Q@TU+%mTz#U*5pP*Fy9yZDkLt)KMuOTPwl@ghvu5SW z{?`)U(9Vty@85nOxrLH^Mf9ETfR0Dz@`ZKZv8k9sk$z~+z4zQ7uOVbna-ay3Nd|V* zIp^5Y4bw)b(QED8!`RK1qwxG$eoLcQ5QWb7@r`MYNdsN<-)2&iX1z6-wfNK#G*3Eo z38rPWwO9NvIFGTvb zb2QV)LH3dGs%}G`2lXW2>LWsH+835ww+XqOi+nm`C1_`d&L&qwkr|;unv#OKIoP?h z4b1W^dDc?UL8*y;rfbUkJFbnCAV|GRFCL7}iQ}0{;#Gdx(1i!$gfDLwb>|2Noq_F$ zjmKee`o(zl7c#$lsyKZ?Cxzu=<#w^vsCYdaxB5!dn;<|Q^d?%+qC3B9v|6Vu&-PGk zW&$_^aG`Yv*+azOZ9#Kpa{FOW^7pbUJ|vn0Xxrv=oK$qzV0r%r7MsTJ)5W($(Q$g> zJ;g(|wtbzDt}a&a_L_u^6Fe{LWGA~8XtoWxEC00_-p8qqWpZplUOy&y^%S(5pdj|0 zn0}WvY^~2=S3n=ee1$~B9tMajK{;d5@rE?Jk~R@dQHpa}(;3Bcl9pKX!RxjBl%~c* zlvznY#s%IM@;ep=k?AHF_f}YT(2Hd^>T9Y&`k;LW*GCPn2C?e3?q9wPBsa7_fWJc2 zJq|kv8NQpH{B<73h}$!S3ApO$Y}JV`0Qyw3-U*f*)VkB2jC@Sz3P-*e@xl3b@R{5} z7AFjWdc=`e;zOt?i3J4(%Fw?r(b;-gFX=$|l(|n*UCdX=vYx9$0Yx9MYMe@ws!mpb z^n3J8!6L=~41+gXvRWJwizudltP)z94{YphwpK%(;@&T-{Mj)~^lUf$_uoy#nGJhM zSd>G##^{Hu#{5|ElaK+PmFil%=w|FHsH-9R(pmn{WoGH>pAR(J2z z-x27)Ai@qYaAyQMe*0!kFq(;|??~5wM1DPyJz43ZI5`I;2h8-h4QM?G!VjJ)dX3B7 zlCIHDZ>?ZC<}+YP)Y^5=bYdln439qAA%Iv^7bt|oVTMT)aK3x^O@TCk6aI3il9VqH z(Yq4@Wi^s35@-_Sky^ggSVYxM3;;aPk(cWHltZET4^KZ@;Wl_ z>&V#pPhb3jU?`UvOKus5gs2cdy_}4DBZ5PtX%ec$3hN6|$=K~pw>m8(shs9D^M(Wq z*yh@Ji>Y$<{MY(dnhO6=g82_1zNj?(pM}`1f(Lj`(x!cxMTh9C@+45t)C5p5k`KNn z!qXOVCAH#h2ZbN4K^TNybZdPtW$t4(a%_2JFmW;pDZmpYKA(JD+Ma zY)uy4dCvBBPuK=?T8{|RmpmN_z>6@|C__ zJO>&h1?djVjyxH^ndKrr5VbDz`~M;L^_xb{JIV!dY2Zm^zri1}u?!$hFO9xjI`Dh~ z7Whr|`WRjJx%E@GDRhb^-myz%{PzcgpIC4H+Iyxq*F7d9>9=#9?91s(sXbtS$pIqM z9ogH3M>?d?cVyg;)wFLAfXNn0x*HGB#xQaRaJ13aO)nU>za@A2|Ks`@y^EBjN9GS& zNY+hd$mQ?PY~S61Z@q9XvsxNJ zU^wIp!}91329FU@j*UQ9er6$dsZm9NvO(<2UY=~p}wOo-(7_q_v6&JSYuwI9v|VC%){&;vV)jS?yXsRcFA#bJ+71B@U~|i9Fp{}CZBxo$4-@4k9e7Fe$P@*PNaAcc z9>&df7`r}C&Ikl*DQ!=TqO6Wq56}xs4|4TfpqN1V$+>~33GAP`VDeR-`{_A#}nY{xUd zPG6C0lhrWYgej1^YD%2Or%oSq7UG#)v0p$1F;WJyQM3;9@2^&*qKbjm7q4V^P!+qZ z!GCIa$o}An?iU`e+`@i2HLvg)wyaIv_$HR4swnC$u&AJE-_C|2Bocs< zZVLcN9}MO*77su#D$b!b!|J+xYDl9G%L^<+^5}&<`L`pFNMZscYR!tP}Kq#+K+oQkzPr!lkK6lB#i!;!wFI0nuoCqIa4N8K@xZMX8g9mo6Rpp%=6j z=e$lJm~o4;Xd4uO%Rd9o>*KBMWB)U9wPpxWPcc$$aPL*ImWa@DoD#%$l-wVDH85<+ zf^mM3)KaquH}Qph>w*BRx;zoSd7l7-0Y~6K3li#M5E@(P&5;5Lzdl`o3p0TKJ3xwm z;f8?I5VFZhF$>ru0~$Seqt>MK9Ah}k0Wzi8p^?CdSo^rt59^n2S7x8BwUzBPMIk)^k07Cc*2!i{aMJ@*>6-vveGt5IC9^0_J-7V zTx*8=f5R9DC@(SR>OMRPzgg24Measi)bsUB+h&XC>8t=c@)zUx3p}(rGWL9nAUmD@ zUA>lc9~XP*7C(I|S#t*X_CdPr8~T|#QGj&}R`Rmdb20LX(seKwE%er;H22S2Mlt>{10c#@48emsx+TURHFx z@%z5^_q~Mj=861l6^su-xJ7DV7uUmlBI-C()o{xgN|TdQJ=m*zq6;{-bB}4{)9DRw zG+59=5^NQ1geV}<#AvHlpz!B1xB!kDI9e)QY!h2uyN9ZFxG~a9&#v?)$on+pF|Kjy zoV|A{EtHnKi>n0IJDJxPP^{%}r6zbW|8!|WY#hrHiCu?fZgupHfyHp4MltvYK@CyR zN(f*2$v=GLa@E&}_G&e?JoVo+FFZVhS z>U#EN-(G-4UIeIO?{W7(qB05O?HrKiRn`9ZmPm+}@hjLU*9Z|G_kBRGhzhN&Y~py? zeotGVRu3t1#<)kI7#PO91)sc#8bO1c{@_iF7CD=;NOt#{#9;*tF?nfmURTXobgIlW z_q(8s;xf1E)~0qFbI#WBS62yQmY%y!#8&xO<#xc66g+BeDEBeUp@~_K&(Ai3dw+G% z+OPz~DEPNrbKFI&twCZDkTL)84z{|_L)v%9i+|4z8;W2P5c?}$Lhf{;>v$l^%(5;q zc~;f%do{?Sqe`w=2f3Y9qiYCo4oOs=Cr`@Ke7H9INyb!|67O|Njqz;?=aY>zE zP5truZNg(@OAf;d#obeH=!+H-q192j1!yfFqz9pkLi8$KBsu|0}uL=`UDqLd)^0Q zn*8YYqehwh;wb^bfzVCF9F~3;D)qLi8NlOnp1wmq#cK~Dk%Wk=5(Kf)6MSGgVvzhMFLODe8?HAL3(Gq+P9_s3dF)C&9A7bC8}5rMLO2}|XnhGq0+D08QKc$V5w;muX zH1m*YMNm!L}N!z^iI%!BTL;3M?qHY)p{|as|z2=H@lh zsB&c+IzU7i>^C7#meS#&^zT^HW@9}Uol6^?S8CSV0QUG^Y0&nyj!{7Whn^=6t89!A zjl9&NvN7bCFiZ;(JkxY-tA+2XCtcFU87&;#bw`N}4*gLR+sX%)40 z=8MtI;|+}@Jw~;yR+#*T=7o-8)xL(@w_`Ydgqj&kf}7^%I+<4}vi*;SRrtLW{N}Lz zRDMAp>((W;7LF(55p%S1lsyvYFQRt8tC^oo&<^hxV-wa=0}f11+HU8 zleoyTDe|ZcDk~2E>P5R&7OkdoH6wDb@z`+yL>I@p{>7R2pdnc_=d19cM~C5YBIpx6 zf)|>hz9cN%>K9*FcR~4v`2vZ42-aCpq3-s91~^u5OtrTwD?x4@k{$z%XZp=>>bxvH zW_@>`rZ^?Nm$UalP(FS8pqt*_kQ^`#HS7?KNA-gq$orMLaTISJJ==RU&z!{RziVmA zUqdn8a8#?pm(3C{8ZuoHk1kp6k!r~+z9-k9PTLeJ~ z989vT!H{N3q%03lBQn+3(g3SnK$9m3Y8--Zq)b`$9N6e5vki{Ffa3J-@mZE>y zcx@BnxYDqDZL1*DfkFg~Y;2>AP!?-e=VsnD}W6Rn6fXMDPH#l`5C zuNtW6hptvA6h{^+NDMg}LjGlV`FbS)CJj)UYzDDWlw^7Ogb#Ei#3VNtbnpMou(O3L zG-#~aOXcwG{41A;2?EU-+ic2rfnz?e18Xi%-OD zR|=oQkgyDhvN+=Z{7z38?pSbP z4IJVsDQFMzjmvJHRUVG+JuGloc(HBHf+TgSN~v+pbnju4IF} zN~jKME8=NVrW+eFy*Ap^|7O^4B?;FvgqGhUxd(*-;hYha${pkJT{nCx4V<_mm%fG7#BBqNbF8oi6MUcphgv0H~0kbKKKg zLba>*Nu(>S)KOi0yy_0KLcXBh*e4Tmv}=_OHhnhbE3{ndoU5$T ze?h1sp#zlF6z9H+i-t|Y1Xwpd_R13_wFsyO&qpwZ6qAC|E*O(T7SQiTVTZo}e`NbU zKjn%ES{OLn&6;2IdMQG5bK9aY77CYSw+)N5I?u5GOXvT}N5n|)jYA@`-@+=zwUOYe zQ;NZfEqi!+X=I-X9Q#AZn2lD<5aE4;uIk4iQF{8r9JyA~<`T|3R{F6$EFLx~&{Wcy zuh`T=Ih2cNu`EqxP@-`{9Qr4bnY|n*Z!&0lFxJLlcXrd&r-!+PSX~Y97&(9U7N!34qVYyI|MS0-cULmq6T; zVeC$p)C_YF1{i-!6wDZu-3&`l0yOCFqVxwXk}7L}0#$cWD1&aO4bd2| z_TK5OUr5+d`jXNTOW9Q%2ak zku&NbqKC9lTGjD>e=uxLCWh zO&@N;dPgb7!s=71Z_sp-y_-vlF{9A8o1?4gKB2K|U*(PW(|Q*Car&gzrpXEj##NHw z;XKsf5z)HNg^<55+0tS-4_(ciw?@@7+v+Bl878*WJdZK|oIQ1_KVISP51D7mp4oCt zpWW$cY<))!)rEisk%b5!X=k5AQUQ$}wTJMGE3m=jx%Mr!+a2L{+C@h1>Z+Aep6n;# zyulW2^JLV%V4TA4W~9jFoPTYJhik1^tVEhV_tY{->B>M+a^407u?9RwHA^!W*qs43 zuWA*6#(tG!Zr zanANNP4{)%ixVoR_qSn^tj7a1LANJ!4bP zbf2JlF7lLIK>)=5 zZh>!37uzfQYv{K+oD9szLRQ9UJA^6*G$mQ!L+F`|cW41)azC8b1C}>F=O;Kd6?s-3 z0Y(hti?nEH+{#Qfq$qi=t`V>cl2(tZ*wqBegDi_pF030b5+tW|55?TeiDuJBp(bms z=)C>_ZpRc1j=M1UzqWnvtHcAfS^uTB!dGgrB)1d!1XxT>`vYlIpkr+ydH%lT z+UQ_(<5-?c+H6DmV!V=FE6@KlAAdCMP)7643vU86taxRxACsWyuSNekN@06+vI^{y zFiB+Beq?yrcpaeml*#>GiJ!Mn7!0iGt9p2Uj^Ds){#_cnD+l18Rgv#*F&li;0q-xyZIC|DNmd!QI)=7P7gfgC*sGi z_~+#IKDO}_(p%JyjC_goI4`l9#u2WZ>0m5Jg^R5mUpcnOrGH~gM=Qj+7x(}T`=B*q zE$kdk!ca3(Y(dQYVGFi!^t5t{lr~7&D{J|Iv_W#J4uHl7Z0_4Ybe^z?y%Z7)ed!Qk zmtOaIG|Y4fjHkQty+eMPs=1M}heejUZI-Um;=@Wd^pSy4*n{ zDY;HjT2t$UPP+;)U82?(w`C3vTbtv$i)2DK6N{-$w`u*3kX$N_Un{&MEsYY6&VJh2 z_&jLB0q!j>LEPj16mC3ML@t7;>*uClk>yeeNOBu9myg93CmCmjn&)!lHh=xVGNNtg z2PSSte)}V+06t=7rqNIuos|Kz6&JXN841A7bRe1kxP!8LWX?{gfk9jRFJz3L8@9(m z1za+&+C1&_E_5gAUwbGb(CRp-CKpOt$EHq)nh8noqmAWTsJD_ueh6_db>Pe8;Bo#D z%3BfCt0^JFTSUJQOsMVdEBIq_E+<`CZHoqYvV}=KO;4@?KSRLmwZFd0g*A7ljIzkn zZcW;R1)P!OiV@4)YwkuyJ@FWyBhA$R4Ez#ft*h3MW9KQ2I)6a6oaY%W-v+fYLsKVm zLc4-3tTiA~)KhV}2{a3FpgdQ4W=!A16QAxPoGwpU1oS_rGqH0kt=vU|Do`e4M*L!h zgM{PmmH?NNJx0qqv&?HgnttVuQyW0Q@pL`qdD$G!Eh)5V95>a`G{)C7r+OdZlYJt+ z1LSgJ&@ofitZN8Gl}Z6D8!Z~dNr-z4zaar^?%7!8zGU)yCZ^w%f!cb-y^ zE%Xa#R(yyeKrmKE%vljZ`j>5UMv0jSm5lh;%70_EW5_Kob|Jy5qRsu`<~qHxPT5vk z_||;y>-*_qSDE1&;XRe0PCWT3=B;55G$oc>aJxAXj{}OS?W_PDJJSr0Sfi)x@o-N} zsVC$ZLt{O>E09MUJC+#qs+kS|oz_Odc9|}H(+kldaOh{uFIc!F*y4N4EhWT+tBbt> zbE5gOvQ(po>h074yX*s-6eJ2uEQCjx^n%Wy2I%u^9(#TOo>z6 z@itdhnac9hxPc%R*^<;T(>>6&>^a_}_gH%9CeNhNgx4xviF*!nC=NWJ#R0V7icD0bJ^a zR}>^!L=@-_tMH9XlhO-w-S)%L!yLCS@~{Ze)ro*XLt_F{x3|5$t=6|W8Xh_;(r9?A z4Wkz=h$;%;Uat8HfNPdpmYw+>-?x_Yy~W4_=)x^?@iEo1Mmsabg9)qtC$S~kp0*7) z-5knCLJs<3X+gZ-n|4ZV$LGV2KXU^|P8bgyX*IwHEBmt;{=Q%@!C%h#R`S=NV%b$2 zG#8pKAUpFB`~{YOx>Xhi9FpB7CbOL!2c$%+xmML#tyBmhimJt9O$J8>io587-ZOrV zDHHn94if~b1<({`z3h2M$}VQqo#ypd4r}f@c!u%tN3#m-dWmHpr|#=q$HrP4V^6yB zBv)37q=f4@@~{dLak|^G^~>M=I$h9-?F)LaF`7;X&qwFq!;+<*)$E}UQ~+;XJ1|#5<2bbKbmLnZ^c3r|5Iz8-|`s zvF{(YV&0Dc%!vb0m&1mo@AX>Dh?v?k(xKRf9y>nCLFG?sYfxOtk$4(2 zLs%4OJuhwlM0Z^9v;}JwUm=pl#XW9a0A6)fir&}@RoTAhUw;Se_0v@Qsw>~QB|4Vy zUsCb>`A55y7wmZ|B*UU@AWSbvm6;1NQ`cy&%JYC8F~=Fgp(GH+@VYAHI9EEANonnr z-GHB0J`K6vTE`x>F;-)>_W7#w%C22%yWdp48W`;2=9?kqYDaVv%8D z7ZEaHU=@jD{Uc?kbcwJjfJ(0i61;Bb2ue@o@D?=EZOer&E*$m*3KTM(AsNFZVn)V= z-wQkgu012=u7}HT$*C81vi2yjb#B~`R#i82jn0_YRV7i57p_2ZrGCG|2u^yVIw-w$ zf!Ed6b{?(@sZ*(dsH<;$fr?Bs1P=`0b!PfupQ(wBGGh1BQpqp8c-@?*-wt@%*Xv6pfrI_fBUFD*w+78^WUBN5}i8K`++fMc_KxY_+{N+q*GwuEEn6cQA>SVqEY-k zFfuaqCv$N`#p+DT>&BeA8%9fNL%BVW@txUbVQKG(%h-8ishe z_|)@ynvp#x8g=v_vU`v!fD%*ug5O&`a$zBX_YEBaD-Pw`Xl!cTR4)TDAo<8g-tn)D zT=n5gg6W7w4v<-tW`GSJLYSG@>~^I>-;bCc)0se(Z8!14sR7~83`lKs#9ot0M6Q7G zoQKV=d^iA!0_pKGrL*yJ@`Bz#n6L5nT(N6<7iwLI^@=!W9|RbWMIf2EYv%Y>C$Rfl za&OSkxFb+jr6r<7wQ;(C@HnI~yq0we04skiB=StDU&ijM%`j zDD}20Sej{*JJE;*;Z#Vd19KXk*%*X(8b8VwHZy%2$eTJ6;_geE48K9j3i(;rfeIR7 zU;z#1_t0@#odC>xmU#&gyri9{{wryl^s`;N~8-rr5Gr@D!j#6tE#4cXl3+sbY9CD2VDMAe$Dv089&YV2ZFxp9?sZY3p92RwSR=K zhZXezozRVRx`YM`Cl;i0WGCJ+EZY(qYJP?*$m}Oq9W2jr-TVOG$fK}wSz>zG%8BgY zRZT9u1r90Ly{2KVa^!6JOh+{}UtycX1u=fQz#-Y%+6+)TJ%PQ8b!tF)+=SFn3y`y| z?iAs9Cd1KwPNnvAazW#UOvhZrwoEKbH$E*lWp?mJus(0l6uuWB{-bv&UpaqwnqJFF zad2nX^B>GS>nsl`T6!(X52-l52zNXK@<(p-hZ~N}Qk?V5FAC?I=H4Va18d+Pt2BJO zDBcT;@$}nwB5Yz*VsBEO30d>hDVW{BhLnkDPTx#M5zmjnoEhAREl9h+N0U|m_3^&` zw5%5@VCsW4H0>Y1dC`=VKjuR-d36z}^^{`M+88;N|LzVr^3ej&T>5U4zU877fM`j6 zyQ16<#69sXn)j1vG-;M~VJIXMdMi>#PpJYJVDw6PLd(^;?JS0et57YieBE`%%R}3- zXXAj5qfyJ6?amC?ghkB@NCGer3aD4sw$Jnpay&%wwEQ&pL(G#j&XOLl_lv-_h}DqY zAMU>ZET6_b)Vn%-hDc-K7^U91;GADGoH3pqU_!_}<=sdM@QhSgU9OAtE%&A%i3`P+ zelw(`jpHJ}Mw4*BRybd(-dkR+qMSx21yrBbp|Z!?TgJL**PI)rQOE6OF{Ta`EW*V^ z#4TOh;K|(ZNlZXvqs= z_?_dBGkP_nC?VOokk%)E78jPf>u6k|(+MliXYIu5$gs9#7y3UK&th5frV-hu4;L) zMg(LvUX-6sDsCCjN-z%B=Xwu6`@(oZSs?_0(IVR;S%lB-P8aYuU=d4spgHrf9rleZ z=6M-Qk!fqqf?q8!Bta8ts_4+v0Uc&m>56BiFTCDWtMvsLvkB1E?sL5M|Np{hxCwB% z`;D$mcBp`DHV&~nLVkf)avz54ftI&OQf)ge>n^80y5X_Z(z%8q#-%$hi=0v0>Yd$T zozKVRw7$sm(=b0IgXcsu>qC#}0RS-od^|-Xt*m~qEj0wnf;C=@`Z-EbrhK^>I0R}G zI8S{A3;U(H^SJ$mPzhV^bV?Qf=2%b^th{GDyL`#kHzCs!?$4t4MDVs<3E8>aR*y_; zx4;HZEFy@ofamy>DwM4iE5u?GhQ$*b$uEjEqNPWVs1LVqMsU&8Owo$xpLw5+J^2Po zn$yNAkvI?gcj;%iVFN`&uedI;^o|s!Qj9Os+)cUqxJc94+lDZYh%a_p(^@KbGNt#c zb?IUaW(|l9jU-Xa&-1hj2<0t?F0bw!aBjc2Y;?IqNiKH7eSBjCU`65+DdCH!feSY}4F@TJVazod*26 zUPy5!z&JLQWuIDY5zmDdXSpj9{V+8a%|CIEO(Du|VuOkF0=3Q~FCD6-rm>gwP7s

nqK3?zxAO$&8-SB=|k5Z78O}2YjVJOiJH9ekfB9-Zy~#>3Y;~{;KMK%RW~( zqmwRIhL%bPifbjy_xcI`!lMy`?e1j|>ne5;{Cwn4nn79r_h4D#c_Zoj=T`Z&Qa+>} z<~WHJE2V*t4Mmbk8VAExuXf|-COfqA-A+xNAUibcyj>CSvDigh$>t_qY*b{r$DrgV zd?>WZ?A?{|51zrt5lT;e$55Zoe?XZCk%TG{ubxsunX;YeN2_Bt?fTo=%rB%(vV`WK zzm!4~a(RF;8+UyQ=$Q|xdG(-UN30K8^qyFmC3lAKZt*`2V7dSa*)mopcL&dyu#S9> zE;_e?0Wx&vf9`?g1==bAk)iFy6_ zt3?-@Lx`o-PA80W+W2gO8pi3hv}jdvTT5wi>P|j$N-7uW~!~ z1^Wwrh6z{(NKeEv8@{cr`{#(VhrHhN`UC#SjMvsca&Ku+#$mFPJ`LbS&rM3_Abz5t zj?Ml8@O)Hz03vG+r6}>ERWK_-^YbF7-Ju`P`In#M@wd~gP zbmYKb&2YKz$9M=B66%3*h&`2j9TJS8e!5`xclgzI2_+`1P|<0#Ld&MY6EPH$MB1fv zZTuccpxZS-GLQv8weSe1lUFKuJK1uxNU^~1ng{9AnJDydI!tTx>8BfFt8iK%fs*^y zKIo4FXsX|!?xc@F5V8|NppepdhLRF*o^eJPwj7`+mgX?N$`6+80(S-7cSFn`)t-6l z3)24dp1R7666~*4z#e^p*#(glm_vt>?dV5C1zska+9v0jn=2=2hqTF{^!K^bs z9Y}#CIFM!FQCgu&oG9?bH;GZN1iXy&_Ok!;WLEI}0YU7^E0OyQ-6!uK$j2Y{_>{Tw z_uCbjDO-fxeje)}fRZKrB6HYNKpOz^DQBqMeB707rqpQ+ z&2l3LOuBlt39#BJV@13=xNj?x z%C}(vR+gkLaNr(6RuaZJTZC?M&pa>!zqivrJy75dDgdGs2UOl#`$O*4NrLw<#`oel zvqE9^^nD_XS`nz*x+E|=2cVp830*}xjU_rN%LW$QI*~m)2@Hk-*sVEeOX>23quX#PaDKlfkk^1PviX9B~@tM$rl=j98fDq;IkD51^y>*ia2}q)y5rQE9 z=FhKq@{e>QIkEr=1~WMN+2-`9A|*ZeHt{4x7Zlu+`ITaGq}h7&(Fv?zAuF`ek|IqqhSSfpnZ4&M}7c6*#;@_Dt2l(q6~;&{nh!x~%X zhkx@08={n769XXUNR0Vyr{`t8Fy^tT|G4wIIhQqFf$W9+AV}OR;Ns^MqwvBL>hfro z-;FZZcVAtC01k~Vrh|$-!~S75z{nW7%0fZ~&_u8YQzk5SKw}yfV2bBGBdjRFqC#i_ zGAGx+HxG;Km4M0G&@zZI;5f=g@@Tf`-s9s#c&E138hAHcH*&HN4@~M*Wxs2)1HrIL z82DnQ(iMFV<5DdjaYV|z4j_3N)srG_M-fc!ymQH9e|$$g=?Hf-3&OoO_-xD6gJsg{ z>s4JF3nfYDHf_HPvqXKg=AA5|)U0NdQ`~!`8fUpoj`@Rctgb zzqO!Bi#rqrl|`J|c1@&;+Iv%MbvWGw`LUyLQ`v5)G@N8o6`HH-QgMLA=D3WMm}3i6 zR>~}=vKV|)tvVc0xBr;M zj^E2TUpHBLvn4OoikoqDI=2y!*-ML1}jnGS0rsg5Ic-+^HLOS zG?n94r01l(P>wQkjicoOvh8`K2eT4ZHnpbr^J<3z!%Y*=YQ91odWUxtSJ@(U~LokRS#@>bR5 z=2aWOTfD2!ER4_?KT<|rT=Zqro$PUyL<%)SayCR5)hHNtG11F5|BzP}=koHgJ+qVuKHb@E zS$Yk38Tb*(S^@SG7ew<@mQt5DkRRop1O=;r0s$zh`G}|P3?g?^qMqra4Mb*Z28-li z!jW|+Z~;g!^TiiyfFF6Jd}Sf+iw`dfk$poz6zQi!;qcPV-@A22N2UHGA{V2bPXW~q^sN4LO?FG)4R3z&$?ed z4{OX282-k->6jbLw?puA-L>iaZN$6o6J1T~L-aOeC}5hG;1#qtA8n_$Lm4t60&5qH ziH9&FdwpGqH)2-~8aIQX)!K$OyC{cax4e(ZT4iS+YmDh5Oiu~BP8gXEuT<>-OG6}o zS#h^wF%*llLdzj5b-Z-HSd5GD07yj&Fv(JTC5@Uzapb))+SA$-ay}LXUh04t!!nj* zd!Fz1=ck>&!W0CK13JQnxuTTZArxPECyfZypAG*q%1M zOn^UYtQr-jUm}Q`aEX|X_6&1o+G(?a_PGDPtI;nDjvb~y zimXpo)ZfAqE0v^+30f*2*D)6IDwy2IM;_H-{I@H(y-)5@W_=8s>VI@!LM$)DMsqS# z%S&la8~+*{QCST+LE%kmS=RG`OEVx#|`j{evoCw33F+M?HY& zfhr)y&D&^W#EKauLlp=y{)=U?q>aYA~2lG3r#4 ze|A`u{`aPm19?Ka6U5$~7#p2z5ofKu!hH|Y<{LG%T`r9sJXRK~MWe)=;d8d`UVa6fLaeY#`mf)gDkp94R~ zUi9Q?mXAWA0VZ*q4QqdEMJM+dEJz`W=mFk&w3Xwxfnyh(y^fV&Uyo`&kYLK6Z`Xbf%40gY;9|Y)-OF9@FRyu| zav+|DGa>nnq2(SDrDn% zz1DOylnw)alMR`2?=^Jx3?s4BK0&9`{Ey5)@}|&ay@kMn2kurEjzkX@bA=}&JbWV8 zw1VfP!)LSFe{JuJ+7!_nX=#aHB1as1b5Te`e-Bk_ozB~V31wbv1&_V{W}Eh+$$z6< zRbqY<;5VWZ&U)HLlzxX04QZcco&Y~&l0M=`rv(dh9gs7bd5#u0k@K8^o9D;+9PbXM zwefNe{qh^f#YD>B>@u(VH43lgYQjN?xhHMw;;u!TCJ5KXUiequf#*++)Y{32H1u>2 zN=b$xY|B+!v_mPmUI&6~j$`1!-@sZ18mcvk^H{H>qSAIH*q-svyCqnF1E33xi+@8z z1I=Y*Oz#zaAtsTbvSfCpQ0cc7uILktxVCQb>-za#D2W3Y0W&OpbEJjn0LLuwr zHkEQ48LX&{rCr<2BhfM`aijLHof8tuEJqj@*qJaD7=(zOxIM)AgsT7`n$w;L=GTRr zezEiQwOJ{K&C53z==7%kY^|U^1&$x?>*-2fV~GSj5x}&_QaZWG z)JzB*>mrqG$M_N8&;g;rRkobsQp1!q*U5!qOBHrSSG(yA|KevcsQ2+g7T}4z1bfej zJc}NCYrs|fw;vz^&IL37hU||}fH6I_b<_;l)c_)aCXZIECgq`ESc~ebas`bZXaal^ z-9A*4LC;#lPL!Sc;}T%pR$IKR*IRXn!u=eWK`_y19HoT18HW>*QV~(rdB(YTRiOhB zCu*0sNbPI%kd6Mn8@!VX=Q%-?4_Qs3FOk>ilJ~r8(3WCJqiv5>3}*=pu03CR@~e{A zzN%lqMxg2dH{U`HC%J@TwCj-I9QD-MErt1+oE77R6b8lH#gLTXDlp2*^Ts)<9A~|Q z2PXAHHe{uxi0pBGZw0lHd^VxzHWL_Qx~bQ1djSdxc9t}|ZZOqv{bw9HVr-i-E_Y|P zwh6qa(8v_lwmqi|$WR(Rx_BYUOhiS+CD0Ij)?Fr1;o|9f+B<)1!`kSi5MA=~O!UtdARZQ#l3gLvEWXXN2T=3MIJTP{BvKTh+ysM``Wm8S zyuA6dCVmrDtyMf%sDP&|@@MkpaG6o*9z{+V!^8*;mF&tpq_ha6w$+sudTcS?sM}Q9 zoU&itF>F&+wQ>K{sqUtn_>GVX$zX%jQ=GzhlRoF~*`2;Pz38S@cdxSiqNjv0ZGwuO z@F~FJy0|R(s%LjNcZwfPe5{vvr$p^ZHlsukxqQT{K9bBj1B|Lcu*pf|c&T zw@07W@>!BL&AvfR!uVP^$PJ$ek=T||$}0OFBA!+SJ@-QDZ;k_F-0L|3UWy>&YdCto zYvqS9@YE?rr#B)$M|Vqv$wdkhV-mQ*Qw_D;W6rUcwArjP6BWUKnhF*n$=hl3pRYs* zl>^5qWFo<@$cq>DQS)q{Gx>7YV}3P{DyUsIy$+!++J7<%pgV#43Alprs1X>1Y&8Mi zK+yrD-mfC@?3P$wgba-}QZfS^QN1tGWto_a-?Z7F^nZ>1cAhInwyHb_uGvp#dEVis z1W@T_9@5huG4ldOy}Knv-m|pP811?7unpk96Hi&aBf~eGc<`5jv_u-A0IuLM$-|mP z3calyo-R0`;BBt+lTvdv5o9N@k5_h<&7Jba`o)m<*)R6R&f!Me8!sOako-NLhBOB= z^%DQeEo8C^s+8dug}7wc0jC^&-Y}OOQW(uG@Rs4sK#OgXJVQ49T)BZM0iLQ@Kktjg z%XA5cGC4+fn-BzIe3vZ$=^lh%(Y|@KxA$s?ajLnXQSj(y;V!5}PwJ|pS?;-G=^d{H zlj~C1#wb0LBg)Ho4SLDe(h-A5 zEh$}5Q1tati#WQ*l`6vk6Vp68pYRi!(cp3vu$oH|f2HUYqL}7v+gg^G|C&F0tA|aR z$0YU(oVb-XQ$9nog}QcSc<)K%Qgo|HCg1Iv%?)IFsYfQ#xp`Tj#(lZht3$X99hyZjzlyhJR?tfTD5sjp18gLSUA{J#`H zv`yT~pBwA-ui*#o6?{^dH{6>gwBx9>^Yb!#i$AV+1i2BDr)Z*GY)l?EF@g(M;?}VV za1^kkO5s86ALJt9@pw^4#6LRKW8AC9$EBRuOZRkRT7>%#XY!(7vL+X(Vlz=CwBdQ- z?&P&5C!Mj@azNi&of@1ZP|JX@Gm>PqG@>6qlktw#ADA^#Q?EKi88My%}s|u+U z7YVIv!qV2LQYA0AZ+K`(7e>e7tuz61gVNv~z$|T7-wa}Z=p_rGJ z3X8r?;K1B<0R8%l!DYi?SCcxa&C8Ti9}^TWx96-1D?W1X37OMNG{_ZGFqQM*?bExW z_gMBZ_9HzcJE@E*T>x^th;&e*Sxyzq>R?uo!!UpdW(haH-x7YsB7XZwCr1-^f51zx zJ}>Te#=(K1&#plTw8aKadF+|ei6kJgKL_4j@ghZ5#g zPH1hiH5TxDtd$mnG5mAmzqmqP8(`ty zxy>1)p-J5m6-nsg=;y#+k<^Bg9B6(N)%PP5;Z*}EH>EUSA z3F>W{!F{E9EOfV2K)D={c)%GD(*r<=H?!13qakUW(^1VfIxU^Qxn1t(s3JS0#rSw$ zLv8ud!)^4Mij20dF3Fpz_*g@vc!Kz~$BtH8lHz@b*B&c&$@nuRR8srAjP!l-mM*-( zjCtQDU97gW^XW0)hLAGPOL&GcdIn0Q6RWx;c?rNok+h+8EJm z4JlX?eFM)GZ|aM}(n1>~xY_!;@E|^8{dk5y!Q=lQ)-rO!1Ub6$0mj@JSH2VF79i4q ztByqY{YlT{>>Nq%-|`n`=27~Tj)q1IZ5(1R2oss?@>+;DqtW&TjDCH_JKgwx8jZ6N zk-S%$t9eP&Z7g-hFMAe_a4A+D11cSl#~LHf=9!MgEwLX!BfP+0A?$Rq<7IrA@0$YW zL$1~R5^!m3(W9IChux+cQ8bun1@grQ>~T>YmrS&Mbt+Q$0mRYX4x%lR^zt5`nBNpX zxOYD{qRF$8)?VAb1EOCBP#aA+x$pe0e-J6@-ir|bL!LgYM%bGs-=GL!w(|#CPM*fN zB?8U%kPAW!w*LtTT0Dhy2rmlh%nkj*4ZV7}7;B`MS;7RP_}tq|)260K-8Rc61dmYKrF7ffI#n0t-2_Dfq0tjBSgtLo zI=IakcH=ySR%uBWy}$pnjLw1#t>)D2p*C>V)!vaajhy$l+E0g+%psyLt0m8UHRT5F z;fE+-BpYFCh_5_Zh*5BKr(o^;#=EZnhYP3shAVayANGTV1d-&wv70oZ7}DFVC~H|l z8_GR1&VIfb*hgCc^8o|zg>*H<_LANs(r_W7^lYVqeZP}UVH((HbQzPPp|CKVPc|65 z;q&e}THPkL*4r`#)Kd1gZz%ewdWh=`Ed3w{=%aolcrl~+``~BEwBsP0BV)|nLdrq4tns|X!j;L)hH58@?@TDP}HL#VLosJ0H7G@&~q>*=3 zZrc@c9Viu#xTkG?JR7j(i_#n%d3o%%Q z*dC-5!aIslpX<-1_7X((qt{HCp}MUr$*n!`3=gM|e49xBQNz-6=_1`?>r0r)kqPv< z0#(LP&Top(4=92mi{~TgKANysb<;Q#x&eLqsR{r21}`eEOJu++@URFfarmgYq;WK7 z@-a;Lk``H($?I(#cu$@!S0Q`g?!nA#@5$;WrfH&oy9X3QeEKJbVOhRhbmD6b^uJxn zMU=!$A3|s!kOuRWVjn!NmSs(scA1n0YA`1PAA*k^(oIF|@SLtDR6}S>tV~WhFTtrF zO_iD1?^llUW7(mJ>#y!p!CQ%mFe@oLKm0yCpBC?z|GxP@=i1jSb&(K`XNg@e{u=27 zBTGXErkn-zUe8fvo$Tsp<1z?Zjt{%3hI(B)lj#3J{^5ApKp7?Y#x*`}xGq@B_FBpr zGKi6zOFTknh6K@sEFnG;BsD}&TV4X0IWldss;t;WeGhJK1=;C^q*-e;+tvd zxn(XGo+(oCm%6*6aG&LEj~Xw+lG0%G+8-R2T>FtLu{n*Q!F)Hc?!#2xghef2ddc`* z!K%w;8ugts+UL~&Q$b>5#NNIsuMdN?^xW0i^K7U z$sA7&M42gXJ&325qE1G2EkzH_D9PYX!Rh7=3VvRIfEMDZOPv zbk#gFwT~pM$^VGt$19p}jaAJi6l`8+t9&*0-Sv;F5t3=7;2t3quBsVY$jwag_O66p z3^<(s^jzV#I6D7d-}+k0!FDiTfXlk(iO(P;fsdKAa5^VY`R9J*zHTPOP}u*Na;>b^ z379YqzCcu@p@b6e>5{K??2&&QNKfRg7r#J*%~2EZqmsstI}oof9z@C- z&I?h1^aqQW3JQkT_ur*lBl_ZNUCmBwV@p>$K-1&1K8C zYrvDkn78=U^-T-@6J?5Om7np)zvG~zj60IEA%L*)rv~R#v$T0bo84npxS7sj%T8f~ zOd(%U$5(=NhqZ}5jz+}u=yfinYayXAkZ>_LwGWZ1mGW2GwyuP7B1_SO6YN4Rc%H(L zXfM!Ur(rSU?JGiZA~*cvz9hA@3J=(#Jh|jYSFjBM$%3i8!ppTI_PIPwWu3HZc?aCL z;z>Toi5r;ulsR6y(!;qHfn~dcdtVK)mmQeN>@Y(vre zw5pl_^ekpg{xA`y%j%pDHEdscfN^5aOho|CLjsC+b)x zBF8r;{kx8teoNHy&Xu$~9^D*-Pik$~bvIw{7Mk9cEfg*wMV>TD6ODQET^ImWr#T4C zT*|ZEPD#Yx}OH~xcG zcb`nwp@?B#`YdV77H5!`4=GJX*H^bi4Pz!99M10v?7q*n5Yw(YD{dRNB4q(+p~{Rj zN6OT-qo$3ejINi{-1_(KXD!r-a;2OG7I*laFoVex@fg*|+ZEJKa{G7Yk-jBaQvWt# z9?p4roV-7Tc2jCXS(wYyV6p`sBAMJ8;*+#TnwLnCzeI1uc;>b*nNE*qedOs?Le>JH zJPW0{P0so$mGzsTPsMH1l#Z1PJI1_td~0eNV%^oCEbm+pqEL}aY5^v4N^-aDyX2SC zwNP&uWs1nNnexP41xTVE!y zAU(H1lQXxi^rVMNaO`4UESW;r{0L>T!xP5{Myftd{|`12wfKJNumznZHqpO+?zEhZ zYaa`9>c8G5ZX12lf?0nNPWwA_BZO2(AWKb`Eb2tSyv!sGB%=!7uP7hS@vK!NvWR6S z12Wu6aS~s3wWooTA~da9*3td$i}keN#@gBOVs8V1;rkKdqf?Op7M zygW!g$zJRhK@vex)AQ9}WpVcH5=`d<>lu_}WD_^c<5+eZNhNNnoe44b6W0O+BSH zNK=Y0Mm@q)TO_nF7X%}|V-dWqFSs&h{@rb|w3!UO_N9Y#xjOO@t9Q0>n4~|1QxuZA z7c|P_V%RdqsH)1|cCSF8En+Nyh&9XV8B#i3d*UU=YobfTu_;Ia>K^wJ%0y_x7t)3R zEPjxRD`c-b1o(JE6TxLge#>+}zHp^k%sMXRraSFC(pCDO{v8CScYRxBwbEkM*XNJf z&B^0iSFIjHd?WZ574rPExmak%4f4-|*XDsrAk4D&L^ATd`IvV*MAB6hIbTbrp0_MC z(@p$Ayt&_kkB%BAv#&(#(Jg*^;ad3S7nEgszw5V+ICg|$y;8~+*-)hXppbP$@O>4h zKJg*4cy2PoDtw@$&0a`yYK7iN<+K8G~oRv;7SFSfosg+~WL|7R;r$p0kg2^rZ zu^lTl$dN1>~Z>cr(HqX=#H z>;Vk?4gY^SpZ6k;rO%c@vZqo%v}SN%#5EkWjfM{m$u~jNzY25qD;cUH;T`ABe(x%6 zoF)Zyn<;%59!y^UVsVFC#w?D0c>nT%F~&5KU;**QI`*mxDWVV0!S`PDz@meHNj%Z& z3!B89i(h2`G$+IJaqb@>tiuFJM(_u@53gA0@#0?>*5LsL3j_w`$;pHS#41#beE~il zhZ#2+IPzFTEDzq&8y^&^Zw9yEZ;+((n?Ijo>`r5y(y&Pe%Pr*K0<~bcd(BZREvnls zP{@s#|AXaZ(*J4WyF>FXD`u}#j6Ts5r$A+kyL%1U>2RP7CE>HkW;Fc-vv$8=*|jO8 zJ-)_%b{5o*7taQnHZeZJpAH7Ziju)Y4n1pWfWyZLs^cI{@H8?6Ns3GM@|p7XCQ;=q z?wy5e9^?};C@9Ok0)MH7B|{3r?4jx6>G}L3aUZBF1TCGnZD_k3rH&j1$zEee*F3Nx z>#EYuVQb-cq-CDR_Bn96x|8QOmNJUyIvm8qFOq*EBK@LgDSsH#>>T4)SZ`{z9 z?Poam+XT;7m#tc}iOp-7u0+>5*m10dl*lcIY+sfIptN^1Af?6rX8;AFfzc^?_icrU z3KegMGD7ChMM82C%aLCI6)UhZovzvB(auJbbpgAvkff)~T4^Sxj}#0oeMo7xW{W`j zp<5;1QW%&{nCKz4tWN~yUV^>Y<4%lM@!Ws3LbX)FC^i_Ww)*Aj7~Tf`&V?ocK7Kr# z2LDv!3x?v32Zr=!f$-}g1>Dv3uSUnV#)*!c#KGS+2*b;@T~{SRPaj3_M03h%y_R0| zxaHZ?6S3WuoG6Cy<^Ow6hO`ApRC+jO9lXB|iba^S9u5PcBb(F>UNdQYWj?3Hb6Y3y zz=<%|J4%Ix>h!pI&6hG7V((fDouJbmHLRDJRu)^{yWb@x(zwK@!Rx>5wIqzGdm1z( zlLISOU!dm|;^*$<{aVgyy@jjhpx)trJ(w9`CSQ?25alN-1n>hDm&7_)oe1$Vso&mt zHLS4x@L9N~3YnDq)D{E)_y?6?EV<}{6Y>jviv6HUtr_smEPD16j5vSSYM&@1 zj9|jZcqX+Xg&A01i})mtG(P(xv$^JUdVNr}f0Gt80`-HS*7_6c8j%v`}%Yd zWdHJS$y){9LpHX?25TQvzX|*me-Z^_y+FR|(9aTOi+BM{y&LKOP>E6EQ0AtGQhzFL z@LNdW^TH2_t`^U1Cb}r^0q-G#d-I!-l^hRc_O7WH8nC*RS1cZ;Y-7I4_m$~<4?!c! z*+)c7n^#aNlcF7pwX(+Tys!}b`4fCRj?ywzQYb2r)=t>C@}uae3nqa8n#67?mQ)M) zMeZ=5IhVyyW_?d%Qg?4ux*nyxe zp#68HpSlKn+Mb@2<)eNnk1|xjl31?NN zS^|V3Lz-Gf9hhDlKMyNDtSemA-hvB#UDbVkmoD=-&B|CtMwPIg!{+;vImH zsC$D-K8*6i?73sFrE>=~mD~+sv;1wq6ZZQ;jr_bkEv?LZT8mN6&W3+8dw;0QvsS6h z)jfYL_>E@&D|zONrr}gm^JletOXK*EXElf64hgmxb7b6SnQ7`k_gaj5NE-me9lZ37 z40|xh-j{6MSh|Drs+*pqBw#Pki$v+L_z?tY+%>Jq{kUdugyQI*KP8+>3Y;CjVBZBI za~PmgeQguCsof?WZQ8Je7MOrG2pq1*@#gK`WhsrKdAkCzdlk1QCCl zCnAQ9O7}@Jd(!Vs&mgV(y-Xd6OoBUf1XV!S?X9gxt>GiN1{qI_5R8sT=KscB4;93v z4TYBaKl5xc05M$F{*FuLtnBdU-l%iI?#7`yEs|r?RGHhSS&giibx`*OKa@ z3^S}rvPc(2NF|c)KV@}~T=%2Uo87A1IR@1e88;U=1|KyW7|+J2NvcgHC~y08l%1HG z+e(o?C8~5uVeL0mw5$UR^M&FX=Q=n-*<*6MgZ$s!X<}T0&D@ZxqN*xhC>(loQPXXl zjL_T4b}up7_y+Vhk}pw#d?P8cy!3->-2W^>_JJErZ` z=-b0bCp(kh8)rNA(hpyXWU_)Y*awmhf$j*Y@gq8L_%gT+MM_}?>6B-lFcD!PNeUW{ylkItWR;@+xX!_!l1UL}7KIOj2)6k)DTpoTCx_G1T85Zr^QnFZZo)=Br24mH$!7&XS%%37t+xk8ggo}L zQA#V)Xf-GoIq?=5vbNZME{f*{Qlr2WWoFmM&-s%?Mx0wg9(i2#S%ETXy2jw-V&=CT zh{J%EJ;Jidm)$S=Cyx)EQBH_ZQpE5qg2oOc+lUY~bJy7*(M3rY0!sjN4Tra*CQ!EQ z6G5s#HJuM++0~P#mq*&G;4lmS(1hn~p;$72_w5aKllD4~mtv|i2kI}~r)?9BnPt{m zY1??y+W-Cbke3HQ`tDdOc&E-paQ#T@LYqvgl`L8oV}ceAFBEZ93C7(Z^=&TpNmmMW z3hJ1a)Dyom&Em)ea$6s%gXf{OWQm`lkq--L9kI)0_bV9%HDVf|z6X$-FcK{jTyIw- z-K)o0&EMR=?wV@_+;LCsNYEuXWoW48?ZBKX5XH?!TS4$%#Asq8q}6kcMgch6^DxXW z6=8cf%EQtap_D(^ervtIGET=Xsd~=okx@*uXcUHqD)(^nlR=RvxcLG*N2G6BV68m~ zy~BT_#fd$$eEFg(x5_$&0>cq6ULa{hMWWdI|B}w7bv%wli_}nOMYvXaGdIoedMUde`3E;VxYumz zx{h@;zp65=pBK-*h=PK5!Ry9WN;;rg$32ixY#55wdWg+N?L2l4?!HtthU9M`o4 z;3ZJU%FqwjykUo}30mXcSFnr0(0D7)jXk}&q3Vv)0wy@B8u{-#M>MyJjzs^DKKr;9 zbB+>-+PGEff-JMyr?w+Q+9~%Kf4~f4WwC(Yxc7?EJL8NBJ0j}#J#KmcDQ1vd=`;(I z3c{@E2qH43j~?mlJ!aR0{Ge$I&2a`c(Lxl~hZ^&zm?ijRb@71GW>XpEB~Qx;Vep3n zV8|OMC36Z9;Aa$1t#!0!CV-JKCns5f&AenxhFb+DLX;(DZB_zvUHz|p{lzD9p*_#H zw#j=o9%akPs-D?jo|5yhUMfnAGRcC(W}Ns|q-yQ`bM48Mc@H@k@*F*B^I30<{abte zGsxKo0y&H-ksj((|qCd}R`noQ2?rz6%wnkM$gY-61LG$+N%#MwW^bfQM9RKr` z*o*VV1rS<{kQI*3!gF|4L0FdsG;mV-k=z-d#Wp0>fP$OAvsuYUe>C;Ad^dALmjthj$_YHs z_-%`jsvo(|zNk=x-8~V*KX*^m^X>sL?;h7w=5*)sBp@m51l@>La#&nNt^m>Nkyqi9 z^UR7&znG(#BoJL_k3!&r2A+s#H!so-C4R+ffoHiNf=L#xF#}lQR8L2>yQ({e>5yx= z7&^}rUMgr^u&H6ubAP;Io*wvEZ zh(aBztefFEoF&Rl;yXevXbNcUIk_*DQ=m5$>DJ8@DVmd!Sbq>;gR>CVYyK^(c2es& z4p^-H|8*NKW7_*Hw&0;gdM2r+Epn)CFwBP^LcHu?5ZnJ z!*FSzNLMEQujE36$5WzJh}{U@i~QuEUz zWm_Epxe$zZw^f5oiH#?Q!ICWGDwDU_EB3%2Vt446DBrrnPBzWQ_dF+ws^+IW?OjiY z7z}Y$E_v#BCB|uyA)tf*w9&f$u-=SeY}!4fl}~jn0kD19#;QC4e=QM6HT{pa9HFSM z8ytMuJtrMqum&tqNjS2=lbmy?;B$!_*xo)|d+ECPuWMlo+dTxw`5zcyE$k((TQLmN9oVm8(<13?X^kxetj;afNL-Bc5`m-_oxgG7=nOTKvV z(;Y=L^c+Jir0b=(^wOEFXvK@&HW?K8qM|HvzLwASj-6qa<4P|8hCQOWf^*Q-VbO8H zXjg!p{pI-=>>>K6gP$72Va(BoOBN*8^EO&dv?<|mna{Nq#oCB1tmW_c=*Ffmu}7`K zvfp+UR9Hc$m)5Y(GNKZZGc?h=#4z}x0Rq#TwllAI(Dz3g0efsatsJh&84mraG{ewN zTP4|sq6@{1(xELiA|I%+Z+z^^@cDM<7$zq;u~$K~!J>n&>U@9DEnK|^ZZ)A^k5ofm zjjIk{n&h`B5XWMT@YJZ1l|5CRNI0OMc)3p14WaZiMAT9rH1~mSmq7Z>% z4!1YNXqW>wdF(rEo}?wXjA7er-+Vl~F?|M0F$0#NyYbqtQ6(+Qk~y`R16~YwKkMN0M)KZM)BAeC-d=Gs#R8qSCXJQ~vL-iB&m&~F3esZaa7c0VeJ2wxi zPtkk(oRFt}E#y($`B`>s7?ob4Yl&@oKK{HP7>`(cHNV$cJ7|Ykt%Amv06Y0IC#$QL zs>VhQv}HIW2XxYD_#HCA8xoJ_Qx?45%IMrs!}}ci?U8ze^qFUCUUdR={9b>3=$aEs zx)DLouf0aPO3<(ZERE~NGsds0$1Hbv5##fKd;46f9TPm?!L^0IbDYbV1f)In6VMyf z3fu0{I9e)AvLZ4vfCkphc*d0YN#4_|u8MdAM)XZ(9+j!tpjjK}y4jYrs~TSS`kabm z$PcswzA_7IPF@?`*nDq?_#!yr>i>o1V=Nk+?9sTQl0~z_5u(;PwG5kbE6-1U;4@4HHJ^t&<^2CNCd<->;r1a0^q=pE9dr~nk z`Xo-1+2{o)7sMC2sn7ZlZ}vmpk^$aPcE$3{-WEX6R;RbUS*z(UJmB=U>(UmwN}#Z+ zTkcMqC7LjfS-V*z@$xxs(bWXSV&dvKzT+LUfzxwuo4pDo<#NUqhMF&5@`Z}iRW8px zFTN*ItW}os>AUFm(qlZZj?=(d?g`ismY*f}rd$+|L5S{veX`rs(Sqy0SoiBvgg&5* zMR28|BM?i+F++V+2g6Hvqc8X+ItQkZlGByiizujsMbS{p6-o}n&-wzT%w0jRbgfi- z(D^Pgp@1VW($k9-ZUCFF$nVMO@*2{{Odru=$t3GHF>wzIBx6(K(3;m?K4)L`%`!p7^Zn&liV+SQvE=05q7}plHb{JbQ^( zS}(Bkr2z4k;y&E*n$Hpy`uLO5CLy=?n}jmQ2q~(k&IyLghUx_B(aBQUB_|wLngmF0 zMODrKAG}qk$6q26eW4Y!*&2FntYvI-3%A8JkQXsjBc20wyXu3Sz|fhUbSH`gd>9>R zIyNRBfCZL_=EaxBHd1q~R;f^Kbu+Fs>&JUGlHi*cJ7R=F){#mtQbm7qN`9}Wu&vpUh61@6~s_=@?=le~#HRLrSdJn3{ zAr@XFg$W4;FtbVv@$63OQUh`bd6SmF%vl3*{BNU9@MgQU(*``-^j)leicNY4qXScJomFBdlw9McDQu^ zsyeuTV-h=`$XM}eZsI`ZTI03x%R0?SQ!f zq4O+Eb^{_Tp!S{;I{q5(YhB4g{pR*H#TiXU9|}2Oy-u)D^p6k#jkG1_hI~Gl7vSt) zUgg~aFSiftqJP2Qr}QX4rJWFY5`8v#LQM=@kYQoS@Dcs$QD>O;+M-`YF#2zQwk*pu zGABC;>oxe@Cse2M+xm|xzP#zChYQ^8nSZek5>a1?(dzYNc2nuiZ-?boW(_>>uwYS1$SeL3bT(C!A8)~g`#0Y zLkR%pBTfaV&nHK}oYB`j^UN!1M8%;HjKK+rm-q_sy6hg?`FO$?}zieQhXa>ht*u z7f&L&THX*jMj`meIPo_O79I0IG)u1#tI%&N;7$Vh@t2}7}H&~Sgmg#IQ!1!6VNTW2T)N|gc zVmdOFbJNvrKHGkM$gY@MeHt;y^wVCgSH=>I31cR2<6ok3>JXm~q0lM#Z<=6lB{xk| z#LZS2d7m{G{o>#3k4um%2G{ywF9Gm2&6%)E{7A)wQ2P25WTPKYXlZrKZCIT^1F_sM zkWUKzz|(yKOG7rp`I+3aQbizWBP{fRhAi&0XdG);{?oqvI0kCEc2J>3c5^Kcrkuos znv%t!ob&krV>9O?s~wUto$kzLoQpi=y}y z^=|==IN5GtD^DlVk3(E^qQDF1lefY))Lc6PbHIL04`01MJzI(k%6e=zKG zUVOFPjhT=ey?mlK<@Flw+2Ty$ur1-Nwha*Zll~X5nlYhRB$^G=aL}KzP@a*wUETy2 z2Rl;$vixa=Gi0S0+U#(UPb#EXyRfE|8xx)IfemGBI6usZwWaKDwhu*ls2a>yf9T~7^@h}<9@=?cn#d%h?JrD{aGsX zNu~lE1vV90h_w3t4N&OlDD4a@7U$vfG}j06?9J-772PAq6I9cVpwlSKAayFQ6PCm_ z@x*&o@aF?ZoA%mo_FnTSUdR^g&PLGAi98!Y)M^rQM)cU5m&3mo8PUaE8%G>pFaNKD zZ-=#9Mnj7q;N$8GKAUDL=uh1Y5(sG&zt_eh>2+xQ)%RaqpGB%65J`WPP4$SH4u%sz z=&^l>5N;vIkQV&4pq5dc$k+++&?D@I8yki#VpmUL!|%++xfyf3&yYZ4W)!EQ1Sp|q ziE#as1btctoZgeRdR%lzi#sgAR=(0Xj%Wy86#L*)cIx=h;4*Yq{BNN`kEv6uBI#TB z=DG~2KrAo~a#&vO8B)f!(weu}Co77rXD88O+3tHt*QD|0_3Vt{E#KL;_|bXT{D)I&UC<0&m)%%wn^Nh*U;dVCn3jhR62|R z@pv-*0Y;&xf@SZ2ozJ5ss8}ujt&z8?Y-rOxWP2b9!of!oFBy-@;3wqO1%IraRzwOo z;0n$!J6Z+A+_$f(^XDp~g>pr6S?!cV%l<~%*F&}r8nvW_uz1g`>@UKM`Zvk+WnNM< zVtx8F{GCd=NR3)jho4Lz?ZZp*XEBdU*#6t!!V6Dm+s>B?!^yco#JRgfZz>?h&y# z>RRu!^5gX zVK;HXGp@9>dEliZiVW%xjoHMN4+`Do3e9P;H-|_&_B-a)fHQ*#1nZ*?;?}T?7y4C4J|Scn%wQD@h8G4HB-f2NgshV-o{A1V2_&b z6BbX7co=mx6#Hl*3c6+#!8_FzKXl&Usob>3rZXtK!)5hh$MCr00EwD#hKIT+TUq%; zpoKtYZYtnpjsdif;QR!5$^tgjv@HN~0$2(2Ei5X03+m89#N@YY?Kb(hkW0|->8nC=jy)j@#VE|~K6@Uf{X z<7dUv4uwWT<-FA|mMs)Xz%`2Or)Ej%`bX}B=lfVEiGW-9CFdUdDfj#iK~g`v`Q-o3 z#RP&`lXI}t_zr4kKgpc+=M+~UL8 zOFzOjYHG#h2#9_z1g35RN3!M`g0qknZm}T&0VEf1;WvAyE~dV63evon!JYCn@T{ObYW5t zHFCKNRZ_=?;@4-PcrV(*MyKlrqyZr~iymrs(Rzb`WhK2gWt)QsU@FHNQ#E9Gf(xe#9-Gr8GSxjLWYs(cQ~%8ETax#`(<}VD$9*1{utmCYOKP} z7*ZPWkINuIqv4##VfZr{ymPu&d>C%@*Rp-AxGLWL>vqUJ%RRk9x&dwOd5H$9Qa{+g)qv3I>ixXPm~j3N0wxA zARdyV`=4y=XLH}Y^9^mf=ki!gXo1PjNdA~Iy|=LbfbiwO(WUMY2Y9oj!UzuE9S8bG zb@CpY!Debdwq_N#W<8zWQ5a}C^T?uC#=vD^ zpDT_PoJOBMTIyAaaV`;V@V8g;T{R4o+@l9m^GV8A7glyGOO;^L?PgAagWB|~=?w4h z)*SxS9w%0}j%|R55B!Z9)*&67`2Tv?;iysQv{4duWylS;y^NtpB}}Y`Cs91a-B41y zt<3E#mM}F1BD}BuF_zvf`#e{Qf26Sc0P~koAL>iA>%PJ46)Z`g#H-w`hZV_ld?Q9Z z`Ceoc1M$T-YsWzk7a*XBFA*+-DzFff4Q#;!l;+t2onU`$2V0T;)`$ouF+9r?4HStk zNhTna|2|kKV7Np4A(TAsK6>?MKbiiS+pNujY)ATBbyVJ^{p$Z<@t zQC*K@$o~q>H|{#P4(Uj^Mq1_zoi{5rP~P)k3ln%ZY>xj%y`1QYXQ&7&w)jJQ+@@{O z>4tu1_yS@b?dLc#VQ5;8F}C7~QTx7c1vv%OA^P7KcM$qE-HN$b>G=)!Z9NG6o>}l& z!cRh zk`04@E%!02L`a0CHHvJ8K8L*SQ~ydOTf*O`vY%!HXADqUkN@^guhhw~n`HuViE)FZH-v#@*9WLV*z zqMX=tBf%LL_zvnHkcJ~Ez23aAJcLM`kU}%>Qs(NPPnwO+O`uvo%p)Wx7$x`FNIv0h z07dC~WLlTvEO6cVNqLOB_Rx3Lq#@o~?4CkP5v-M`L~%6>2Rh8LehPNd8bHAH;@f=( zbRnK(^MDC%7AOZOA&>~K+VOlw5^|8PHei+7!1HLDt@}av)54N&;|LI_Jia+iKqkEC z+e0J-M$|I<(yZbVW&0*TLI|KlkU^j%5iH+j1Eqalb$WNxVMwhf(Dos+O=x3nt^Aj# zAMn802n{CRZTtQ0=Z{qh0hm_H&^7Ol(Yr}r1Gy#LT~xmrfWc^Lm;7-V&wfBKYwlQz zZ?oNZq_Cnwe#uHUDv5&dn%e{DkdQrrnW+zHj!*JgG1t0(D#!l&TJw%xSV&dG6lahf z;nH(4pJGDmibAxWN3sW!3(gcFCmKOav8sx8o)~U#(Od;nPlapUN#&?LZhIr+eW` zUJ&2(`Izu<%j^Obw_16J2;iQ2?*ay(tAZQ*!=tbH$=Ps4tAC|AFhKk!Lz-uBdxD}- z7BXn*hO1LgxKCKzR3~LZ$P$73%9v+OffYu!JM13AN5qeDypQaB_S78VO8wo=2Xy~3 zKxOrR!o8$O^!Jy!e6s5E2a_UqRbvjhC!v2Tod;guqX805W)N6impttMqjUKWq}vNL z^OX)b+#v;=AZ5Z*A_t#5YXcL61QnK~NFf{bTbZY;j_2+`Cq6jNKQBcLw#av}DUYxftd+}s_7;AJsy!!nK>kdEU zod=55M5Ga-WCCU4C#J+=?f{gIZP2pZLe|+G-ob+yXYB5B&Q()s)YX~35`!~9J75wJ zY-+c6+Bnc{`}I7%w=%b3%3&AVAy~FiY#enp=sd>x?5DQ6b@Pc-gdw$M;&=nTA=7ux zk5_6h6BpO~LsMK`n$>IuAC$h=k^RVW=_Qu!s7}j0rw5*e*xGI)i9y(0c$%f-t%5>R z-c0^_1QlRJ$#u`>r)I~`&`<%*l2gT*mNn8+E|;+48E&2or%pbf5{JAeMNt1a0u zOWctF;_`a2zADRl7Kx29-Jfww6Rm`OZC1V4M@g?|shVxu1-`E>gb-xeD7~|f;N$Q)O#?QG|#-oX3cwv;WW!Iq(ed1x&2eBmX!DI>x3ls6~d1)~XX zSU;VSh)=rJ_caQC40{`?WZv9_NM=BWtj!4# zJ1~oQi#KTIw3Z0H@&f*rdP-=N<}mwsOq{S9Td$?1QKHBwhi-m!Vi&YdP;H*zO;;oC>L>5m}z;2b>d%|A3tq$qw^z_If0`X_wJ1+hgsC-aal556cOZo zaiyVRreemOXy_1_hyfdw-#fDUjCC=x8_}zE3WVm2?V6qKt~w0memdW%pKBQ(_l}2T zvOMjKA!*;56)5jHDY>$z>Qb4z_edo?OjQIz!t@-t3fCzfuX&=ou!^Oc!kG244^XJH z)Yk&`Y;-#g2@Ln1=%Ud0>N$WZEdQlvJroAFneEZa>a@|wpjg6P!y#WAuIsiB+V;1C z(MkBzzze#>4IPSot_ngQks$8oAzxajcAYtW|8FDW)px_3WwBmjNWDR%w{K zhjjk9p;z3+{ek-0vsI+WW%U7_n3?Z+%&4F8DWQ9#L zBtDmOBp~T}x*FE*BO}kGLC%|6$$d;9+*342{hL^2n)Kq17R7E5+6mpZs+I|R;R!bb zoN$t!TiZ^e!&;-1QP~i-ZN$wtMmz2KixH+PxY`pG5U2@|uBT8zlXm1bqEf1#c6tOn z@>u0Nv@uQ&N6PtIjN1-9MOJl*dwHo<56P6%Yp&8m25 zO`=U`QRZG{6JT=LIy(JoboeCeOQW3J2hE{uAj!tjbGf1Gb>9Bn^Tf;W<0QKdn=D!m~np>}2-|y3-tx zG3|c(MLIR%mQP>wR)9Dbj#>OSJGei+V>BM&<^fGNDsVD9>?gsyrLWEAop!L9Z-sR^ z(L&m`l>v+ynvSLg8+PD2mO2Bi8K$WhoIA&PQ2ZcBC?vjxSErd;J(Tzj+dLofGN(&l zdIn2am!a z*oQis?r!S+<>cMhA2e&i(XmE*hU8?M%EO z9yKbihnzsGjo2UCA#ysiNk^?L1@zHFJ9D=55tjWk^CzZTtT}|d`oKJtU{1~z`l53o z<^@Vm=`6&QhX_T$7OaEvUHBcnui_-5(txo=(#B`Fk&^2lZ7JbcO!WQkQo9$PoA2Q# zK>TU4Ve37Uhn39-6O?3d!)w%ww`up{n7dk__JQmw7am7=1QHrOMxm*Ue0Boyo8e6S zpeSV(x_YGHNaG>veGR&YEP})@o7(a^`89AItK-J?R>^SPf^E+KuGjAWAdwE(m@pa< z;Fvy?vX@iCE>LnXTNeI3dWBK z4XzFaoRoE4m94n3H!SWeSmrL70?8~1u3+Y2ZMUQ!EY;boMgBU(GzJ z_`o|g2I#SD2d8z8L9FXUq6AiUsnP!lceM=me)-?{eX$CNJM~2tsQ6|%7A?_V$??e= z;OJJ#QqGNR)*;7Q7Ipz#8u_fMx`~}4Ab3=@wW07#TEe+|nK{#`eeb*T*yv2{`xe_! zEIalygAB=YKMFj-9l?q6ACND(q-!}7uw+m`#MRR{ zR&qL;280WH=eI9zP=si`YA%YZZ2bP*y8xf^{`?j6vbTha7VK(!>kk>Ln=NoV5cwIf z(3Cu-@Lr3^)j|%^LG;_NP7~&*yysV7iEb{#d;}srXC;*9-#t8_o+%G_rH$kM+rYOt#s=Vvd>LSQMB+--LW^@IbETgE*7D_6zdD2?eFSQ9Sl8u>+v(6}0#J7#;=E)| zG^eRKU9Z5s)@MI5Ij5yZMQ-y3*(%4+$vF$m4vF>{BLgwTqVLkV8>$6V>;T+ zMGr01Zwx!~N+gJ%)bQu@T0^%S%x}$f>*H(%Xfp(GMUWs^p@inD^`Plm3h2XXF{P8PxecQ=P@1orbalb&5;`~1P;qF{h_TTWwV-be39)PK@8}GB zLx~)`K`qK_UFsXiG40HtLGRw}n}Or`(n?mB>BQdPbt~}!{l*raM;o9dk2c6GDAmUt z95u)z?T5{E&G}?W;3`Dx;{2P^y1=g4{xGI2pAP-Jf2|YXg$2`$Hw+sXTxlMoNkmK; znnSY(oY{)CDZFyQ_UVn1cJ0X5WlWV)R*;EL@$Gc88Rk8!A~9tIhXWu(8I?1jZ+x`8 zk^G|t-0az`u?w^Rg#Eq!Fc*!KO+_-0dyN(jy6AS0y6Mk2?5XinFN#DNO9`7$hL^SM6#XeFxv< zAmJ$w#IOoKXs%TSq>kZ})dw$2^_x`!Zp7C(8g-zMT4J z*=da;UD=H@NUPGrmNsiPj%d7A53nhw2hv{URh};@6KvH}<@TWjBH6STyxZT|kg#{6pIJ>+>4oH}}P|iJ+lS4v3z85i~PBhP@ItqQRWqv zHo$_)^UOG*#;WAr#)p(V0=7qup4f?Kwm|e8d9BGX@}cFMwLpMWll@Dl9T_$JM&{Op zDf{c4y6BKk_Fh_`M)dMmwfChRoH4Lo;G+@8qZ>VpO^5 zumvyjDP~^8CnvE_j#oQgx0K4uG*XvhXH5N4ln^XOzy|^Xf57aaq?H`0QIYcBQ}E4A zk)u!sE#J8BZT_RvY+OWjum$e;7;F~Ls8hBl{&H18+wZF@cj$OLd=Tp;#~=`TB7wQR zb{KC;IwG#>^r)HzBI5gPq{?UBg4I>rb!~pr)F5gH)|ra}aa-n}7i;q~LjoY9Q0wOg zMTV>r6;?_|Dl^?aqgRuTZ$w3206!l9jbay<(6ehz4itqqmLJIevsfwmcF%jYPBv~Z z*p9j^WM%?qn0a(0Bjtjnu%j|Oz&JV(8fRl+%k`vRIyWC|n@c!t-)Kl6_S!)GPIM(C zDageYMKnfx>Mmg5?NGbE?vDL@BLv_Owb&y?9j3XUL&f9*MctX}KcOO8b(ZVHx0V0% z=;4YRFkO>DuvE@uSMgbK@K-~~t^jvzy`7c-i(K|>P>?B151Lx`lxS@Tb-tsl>&PVj z5}2JN$Cxyw0Z767wMO0J?2cyff^e)BrV$g@hX_pNN98_mOU%>sMzE!Mi`&!{8w19s z%!t~%226|4?N;|8wVDHAR`fXohO=`(YsF#CA_#k-OHl~N!9S2|Fa$^P_$dVHNXL^f zXWz$NSN!X00>pA`qUbj?98RT@ zsPAZfueC*ePhphHXs|nFF9wfR8fY>^+Q50iv^F22V%di>&$JlI^(A{h{(<}Cj;`ZV zlMxnzya8otyXAkYJ$K!rvHiF#^A(Y#6P%6TR^hq49koR(q~>y5_+TJf_{`di%wLBd zf-1(x6QH7Sb>loZlVv9yqRbpd*z^*pJFEbhf|vx2l{ZmZWvogo&gWMXd4bXXBFkJb zgB$&)TiNVonwI-$v3my1Lbg>y-a z`s-g9H{h9|%>q~5-^F`KW%rZIYjYr=<*tOsO`uLEP51}8R{Z{Zssn9PXTH2~K^_Mc zQOdGDke1uHwhRFG;Q~4oNzh!1!rQSafXFRHj(QsGRyh{{a1=(afwRgu=TOOvU@b7K z_cUr<&=>7?XsvqNr(ezZa{7%FK6ejteJF1NRx@Ziamh6!R0TT4W#6*8E3`3F6k6s% zWC|zT3!ipRUcNOl1i6ba0<|RU8E@V0tTwKF)EOb~A|N73Ph3D`H%y4kd(e*5MKuC%>E%~p>t|X?K%l#=Q55r8@weBO=yL`sLZ53P~AMM4{PhCguvBL#$(@Dsr^y@=V5pDxUCvRTRo zBT~3xzozqA&n?);@3PwPVM!rn7+k!KwSYfnxTC?qUsaQ0(6-1fd1$Zar-yWf>BX5B zeDPEGXzr_A4AXTLyp9rYSqBZl{lL26D%FhG_WSXB|2nA}(8rr;$|zXN>_YyurigfC zbB@kO_5gD7>xdCaP-5bPusi|T?3<{fYF?6z4NozaS?F9y(5*lb674s-Z%JTn)fT;Z zkih;IT}w>H8l%7@f?~>8uQMo`w@Q^+q9J~`x3(zm8|i?70QvGC!aswOUYFTUJiWx_ zk1Zb9b@mmzWT`$a!!j6*fWlT}V(ydw2O-Ky$qYzYik=`R5tsjqt)?7I)ZmW2+DNTV zb^CF5j~%_Rid@3H0c5)<;Nh}bxj5s?kklev-{MiOOjz%A9I~?Z2U}3RPXVruKc{L? zA0$B*BHJ@(Jy(?2)NO3;Oe?U(JV`7CkI0*=?k9EkBv4j35(+bEHe)@n9DR>{)QTfk z9?C=a;Dm@@dfGYQu`{qWQo5lb^khJ82;LVRwDA?@f?PPSox{R1n7nFrX=vO;bjx-O zKCs3lW)g7{#{1HcX(8jU&<- z<|>xFu$u<*XglAkgY-$fpHa=O+yxp(x0)EQN=hHww`3mKDQ6h!lJF|9pbM;KsrQ*71us8`CO%TCv zf{eofYVlutC7*~Qx3kfW?bo@KkY&(Wv}I`4Pu=KpX{OWvpf_AayZ%xozzq24Pw~_pWXIBmr+ITb8td+2qb-kB$zqKx zgQUu1$6te&bFvRYvx%GYQT;yI>02LrI=v?q%0*_uP+DJ74Qp;MAw`EeDG60%t%_Wh6SDq=WQ+ITsJ^~MB%Dqqi#Du0X{Ag?<(R zytO+1w&_&n92$Rg$pA5ADecS0gyEw+?l628Ts0M^?_ABhCamX;C&8;STZ6HyjjtCP zXGJU2L{&UrqnaLhnYW^MAXolA82zx5aLrO6X!C-WzB@wba!I0QK}1q`=E*~1mn_6G zo91alj$3MF1O*-A+ppwDUJ5t^qKBB2vC7wZwwVD)C5&6`bivsb?pt{bYQn(}yF+e& zOXwZZzm^#>!N)q>X+OtZ{ZudJr-ad;f4pSkk}?*w#C<$r5UzP-MYv(eVSXjpF;8*` za)n82q_jU1EfwUkVaK+B4DROu6#^}31!Wmb*zsn zK&(CqL5HH&-8Qo<%2q2|@Yi%{Bk#r1BX7@AL@G3^$*ApfnI?i$ZMLB?d${(g@lU|5 z%~;#9-R4j_DAUDP4+)Me;U38VC$WYRjv0GL4MS^QQ^L>#4x{=4+i5)?tZ4VatB<6t zhAh1u+;2g zHAaay0Oob4dtpinjrdhmRp5H2ZN;-b6Ir6+c=twKUB707fxPE|uW4due;Sg01?-~1 zGt?~0>UG$&w3y;{|KO}P?sBP$#J@I#>pF759A~zSfXSKVcDK&YWju1_QJ4(86{WOQ z{S6`BACauDa?l{JfGm~>)}alCtAFB8PMOYaT#LTINa zOF@8~z}Goc%~0`kC*%JNcB*3Shtr$xB(pa^ZJ32J%ZjnlLUDP3XUV{gwmbe+(~Z*a zVoZqJPcnZMc0oTQrbB#C@bHDGtEC{)o*%Be3_#NF<0bV)A1;>xIQ7SdI*^Jf>2>(w*cY*hp3|xN_^^EUaVP%A zg|HQrzCk)%^%$+Ab!52l+cM|KJI67Zh z`fJFqOm{{Zl-;6kbSNb%B7OCm#Mup|8}m|?`Oq0tB4=>7tI!h_mud+m5_pv zaOb%9yFiEW>FE{K<_-9et4)$iq8x*Z9)xN-Ze06gXj)mo^!lNE%<;`~^$8rw+UE#q zWLOe}xoqG7re$+GJk6KACPUQ>NlAwW1>!035}}vs5c;+pXAFQJc>Rlv%brg<>}|xH z@Fobn{2tP0OEDUr&&odk%5G8KS|S?I4aqc3BF2>KPScI@b(F-Yec2IJ}H&aYA9GjqGcR65)Jb z)oj$?I&;?x_=&50&Ib8xg-eB3Qj8h+0j{h~NbIZK@t5Ajs&ZIuaN=%8oCih2o;~Af z#Ge`yA7sETm(pY*x(TF8O|lgeOq4Bb6WrqDNZH{l$H>>_ZA#URREuv>h)%Mc=3W5h zxf}G~=AOY`3)-R8U9W8dd{P|N*p|{wCb%93e1H44_?>0G}IGkwoPz3cP7Sd{* z+Q4y;^uGcH6%l{25ABQ$@8up0y7z{zsx@VOG+#24SFQ0pv8#GrPI{_KccRA^PxJhI zA3h|O1kJlcN*G8eR%x_zs$a*S*md$yb7y_78=Vq|FvwBm-$Pr!55fRh1!*hP1(t|z z^Rm&;u6We4igdnuhgU{Nsx*7Mt=XAm6#V@V~gk9V-x&JYtfMvb0q?nUEzah0s6R)%h$(i z-NdhC>v67(AhU@bwWib9lA3fR4|D4+JYOF4quEEjq<`3Xx^_#YApo~_@2V1u(mg${ zfu#b&=oAoT;2!9RAYj_;&vgWhS)N3Bbni^U_nj*I+I@)Tp9@fq#VOKrQkpL=`*Whf zIH(h7q#Wq|QZ#GnPE$O40z2B=o6$1VBUwzHNma03?pFSml2@xCEu~F!QzavuxQY@G z$wLkAp){gLvK^=tUJ$0ck6FNG-yL!?j~5^f#V-xqtXAXdy zq14NT$C3epkX%7L>Ah3qADE#c0=e(kXL!&c)iDZVC4}*W=2GikaXIOfaF|f&7?EpV zYB_8wUadEf7;s#BQh}IPyjA=cSr6?VYc$z%nM4(S(>nf;tc0;fCjj_i5tWbR34QhO z(X0b7LjtkYe_v@q2f7*@~@pk9i@{LUao=qU0!v5jif zD5iI;JJKxuI$e&XG;deZZ7SqNKWS9UK;N-Ez&c>uZp3dO#OCtm;7>?AL zerd!AL6%KlVEa+Ed86Y&`s^bA`WvNI?7C)YC)qO=`A~*!)vp?zo_QS^&Jm1jm!*vL z!Zte~V*x`(n)WxW4bN+VIcU1P0W#=MGvR*7j<$V|o{Mo*E&?EySMmew6k%FXEiSgx zQpUCd7o9159XxQeJD@V~hG7ve_jft#oVJXGdO)>=n4YmGmEhFwv^36JBqgA^D z+UJDiV(cZVwk9B`YeWz+Go+*6>)BHkp}+jR@HH}NmIGw65rxKa0&8mSUPk+eP4OTs z1T$?Rm#Eyvw$$?`$Wh#`fMzcylh|v<{E6Y98}d~HryS>9h(PTlWt9xjq0gXmogfTM zga4j15Q{x?NG3Vm>tgaspOzK{Ps%9Y?K|5#4!w6;moSbQtwb|oJCrRz07Cn@F7@d1 z+B2JwoKV*bOnms~Fi=#4XIf(s&jIcDHv!jcUL+U*DJ*}0n_>~Ot%VSQqc-q_A?4a# z=u_CunGVV{JHEGNi#4*(8b8PLEVMaj~2H^~LO%8s8 z^((ZSLWR_P$~lMVMiJE-Je@~X`5uYu^G&2b(_l0B0l79hyTeQg0`J8BJ;RE=tGZBV zaua~bq@YMRD(aIQVO6XXfi!SMVp3i<>04rW3lbo!RM!g7d^cf;b8o>H)egR5!FEBi z(UHnL?g5G?F@ek`+Is66cmdQaW^f4$^HP&{+2364KW)8;O4fJt2y8)H*K!W{n{} zx0)Vbzbew-xgPw>3^{94c?$TC(gev)xg=8nK#Zn;1F610$55}(Opbj`>kYG9EdJ%% zLjLcDKXv!aNll#hUK7<-LJeKUuG4nt1U`~0peZl{tR~`ns-~y2xe_fq)u>RolIf{7 zKD(RVfLW%XRJC09%{veQXZFbnm&mIrs+`rX7Ty3K4a;MCIPclf!gD%sYLJpCtE;6B z@N9Qol!33byi^f!px5yPQiWoznv-gmVUIty`Dx?yqh%=J352mz?0zpbSND#6Ysp!( z&gV*5zkFR8Ks*h0fvps^(}YjzZtOIQh83p9%#Cf#2WrwRgE8#DDEKgm?X{*%mI2%dXe`l(6^r0_$G>Hs*?shBLl`3xqTM4!x>C4fJv#? zLtOkPCLtN^bd5;4`$uLu%F_%hSe# zROA_O<+r@zZdahw8Gei7(E^{4bL3(xp#1)eO9%p_p{BZW=JJg_>t3&*Lk!OOX?koQ zW@v&-^>^4oWvOLB&gnE9$&Ey8B)}>pQ;Ikzc{Xq|c$>wh@m#X0762ZQOPs;KnpzOk zJw_XyoW8gpIpPkw8xk4Exqp7O>ys7YPkwt#_n!z$G(U=;67bQzofB)N6^ET>2L`JX z50rRVmx}dbk&@0}Jp2OaPEM$Y z+|UT06-C(%-o01f|LJG;FU}wPx!P{rPBl#@qMy%z^M#qqJ%?-s7rNUg((g=Z$-R=X zapm<)353So-0f_$x$0v;$Mbia!YK zRUbW>F^fZ(Nfm5CKbsp?b`T%8vKcr`zd|w6)H{Ijl=KSd@V2CEOrQ{N>gT}JFHJ9? z*y{#zQVq(koA(vDfQ{!dT;3=k8wB-8vjRh+G!}#dt)x8}2t}Rh7t3WpnF`Y%v-%(1 z%LanNU9Gsw-Gt`B^8n6Rw+2#CS8Oi1j?&MuT=;cYik}J|-NvYQQ+J!2!8PBiIrf($ z!TaW0yJ&~2Gq~(${oOQmj)v=ufQup;Y}8~QzCUNlJ}$*B`DCY&U?@M($;iL+V-Kz< zJA6U$9vH5kZH}Z#&t*t;fz(?b?9|!@w;mo6h#pOisnvKZDa+uNt)o|018?l?%Z(J0 z88N?`p#C6ZyCSyKv9DKdcc1%<@ZyF@eMzPFj~k)i&02&*215P3azT3KbAF{MER2VU zlQMzZI7i0KT5O+MZ513zm`*%&pKhhQ*(R+zD6LE?_q<%EUo>o9)PvF|+qJL3uzE*= z*Uq9=he$KpKSuDy?t8C^->|&ri0{)d%BYZtp9fPv?3-f50_9w}2Br$;dg4A{bQ~ur zA=f901ht#9c_v}s&}7NSYHKy=Dt}ha+3lc94Q+!(9n?jzI;qb}t1Y)5WCp9+qm}Mo z*RGziAY-^vOCUTv2VwZkKr`7E3O#&@rXOR3q@6?y(BidnTjsSKKj7#WLAZo&uvceA z1A%?+c4POEd6RSBBI8%9k3xbb8>UgRGqM0u`Fu75u$0GVMGyvvDL-y}6+1RRMd%SZiX(~u<@RC#A|Ry1CPo=Bj=0d$Ju6IWG2 z;>gmpnSzZj2~rvX@rW&MCl6nfYU}U4RFYabLX52TU z!pOS3MHR-e&um`xu`DIB_mfYl35@Pi0NMXs?UKI8^tdXY?j4hxs)^&=M+(U^2k6EX z7WYprG5Wzu_w&nQzeHwoXW_YU^-8QH#@l*<^hez1afX&df3NKQ`)m%tG@gq1(fPD4 zJFQ|hDAk`SsTR%CR)_Wxj4cjg ze1D>uYhzY#51R9u+vOcPzhf#xp_W|<7OtDD>h_?W2$WJ>T}L4{SbcmhJ5FWsYd0 zcH@?DJPtAYUh7L~3hUc5P zwYzYfcSVR(uj1R|Tqm-B1%SF&zR7>0(XW3SVr8l+U;s!@sz$YliEPg&6QvLO?vT|v z_8VC(tsyyshr9v4(LqD!r~8Dt?2XBV;3_@Yn8b$^n|asGC0`Ya8Wth>2mn;M(xT!| zn`bKqB6L52%t>qXzHhzbCn$h2l*xp-CK6<)O8r~8`oM(>u0=6d1pn-v%H_r-3g}sT zuP|9Xe!MK9r4c|~N{9fg*L@3?;Q+D=OwF=#V24EZWpyht#eMnS0yr&W1clC61vk$- z>mvR}0#_z%*Hrdr_*zR71azRq`qxv1s;xX+)E1N!Gyk2XTMY`05Qyr0AZq-S5L00`U z@3v}VlZJB!Yo3mvlORlKn6=3fB+A$N?=Vyc;x&(pV|y+)ubO@jjmvq+E7g!%=9Pf6 z*M7)dVo5haNnQ=<^vZqWad5J<{h{PrVr2_8J&r|o*tjEjA&A=`?SCx-JwRq`G(pZg zyDOXbXw7&$`2Cq=8hmEgWazE!h#ren|2jk5Mf)Y+Ux}Gj*Y2#gvNR`usW=A zAB#nt#w4o=4V7tE%Ct1tO~Q%*80Ml-ScCCK;MKh_Pd=|s$2oWjs4Wj+M)Yf!bZn4K zzF5SsyVIU}{Wjr7BfMRsmjA@IO^{9 z=uVCb=lCu6i;2(*MzDP0_Uf6Hf#aBuXICfO+yw(vLFQ6cSbZHqUMk$xKR8aRsCf8UZPgF)`a2-tGkciG`jq{Y zRH9roRH&2QocdJ?$sq^M*2`#q(bsULFWHHRlsvG(aKST!g0?cUt1g$pqlt1C#3=mw zK!&e?;1TfF08U191z`}`b3FH!#za)(JskX^;^t1sXgi>hp6B|QZP9SjHuxj9n66?( zrGMsixF7S$3&VIvm|m6Wg2ctwqQMbS~rInxRj zPU}*;LEAYURi|)ZyXv?={@_4g$ss5NV<D)|jA|_8`LykNrc!1tukX^iwNo+kAQ99pe0uE9wPKKc9J_g21g0lX zSF{&|RXO$f){N!;x6h6rPr%LsV@lrW~eyB`*G4&xsfUlqzbpI}a$r)LXOO5=5B>Y6}Yj8OFhxxhzVn-2SJ zeFCLLh;oEXth&0X6fetCIsGL5ha2`bUDF4nsmTwT#0AfWWMEz7F)=>oanES`YDsxX zO9ZZt)F@zl>U@a&%$8s%TGLDq`d_)g$zG)4IX31bjpQ$I5O}QXHoI*@tmY_;>9lLr zQ0TLGKS~(X19kcJ;_+!4GMPcIJv@nQ^hAK73%>uN+(nLb6t4YOz|_~-4vvcK z3*pv&l1V>ml`TG9@Uv zn2;83wB7!{-PM1HBdA_R2Q?8B9?)-oQQ(UC3PNEC=WLD+W`lgy^fP_%Y=&;kCyP9H zVXcW@!<7G&1R^VHng5hgK`G3R5Z+hDoH9C6P?KyA#&1HJHM`ysm#*+k7$Q^j+>HuA zO*rmaA%o0#PcZMz_yV)n`Z1bH=D)%wTZLc>cxi?@vh2Vb_G3wJ6oUR?`@LpgP73c% zoiH6;^|yeg|2oRAu8`g51)XMwM-YH&8H4vN5XUlH+R0wCs=ESTrfu`-9lRq@{E$E z2dmFS9ATwSh}C_5GUZ`SNo*JQE$ed?_9R{h#}S?&vQt^pGt^dj>sv^W`NP#&zqp2J zP!lHZm&!rcKoJ8R4+G?B=5@Wk=l-7ht^%F0^R5<`lD=H z?Ju}0#gzxWPBs-d318Njq=jG}w50^T!XsfAA_D4Z;Sc5ovmJYPQhh1#9$3;Ele0{P zCIB-_tDFc8`7V3wVqtpVGec^mtiem8q{ZcV;xKJf&o|2>Ks@V77@KOcygH-$+&Hh) zu%O&>p6|L;g^$}tC^e)`IO+ElEJjBX!0K+Ir~CK}K=NBL;I^4jT0pB%^`0bZo(Ru+ zUaKyJ&XIu9<|PI8I?QV}_EHI=#XAbU*sYb4QN}C|Z9Y+4TBI41m6T2lS+*L$U`Q~T z8!^~12dOlqAVczH(d+k|HO`btg=&IORa-S})W8ddKtkDK#=^rJr;WM5=PlkLn7wPu z#%*JmOZ1xlW{h+m$Y3^nyEV=cV+EMTO1Vh`7_e10OIa-5?0*E4p!wFaGyN05^7DPS zrU;C29c_>;6Dtk8wmO&D`A4EGz&WFx)Z}MwWeN;}=8k*1<+(Aq49jJ1FTo-&mzUJ6 z{qm`#ROgE`EMC~tV1J=eqBLd~rbMbM&^bjV;_90}*u>=8FHk^1>P?niWKoGDdaxO*8A4W@$T!) zFe?>)2MHw;2ic+!i@BjmbX#DH*I=FWl;EeTej{8KZtWaR(@iKD?25Jhc?DK)DeG?M zuWQmV^6B>PG|vpEWBc};tL=rd04D$A(YF5tW^-MFZT{mUyA@-%|3&$Dn^BVH3r7Pp zs7q7Y<6Z4N7>;<#Q_%Ghw8}3M;Va{eq^~K8&7{wJMiA7)Dv51F{2I0G+F7t;({-$t zf&b{oQW0Lf^{|c|qF}~>6|Yr|@GZJC0$7)aqv&JB9ihsFXpwi!f~PRQzIFUg~JcfZ&>WY3}I;Zd?xe&tR>xY0@LvXh?Vzl6WaUrF<}{5{F0=o0LuqC zI_9g2WGj0YE|wOI8}c**y&o=<0J@ZZv(OnfMTgO-zj8%c(yS{M#pKs6Ed~Izh2#A* zIh|rgI@*|u9d73h17{pq>0XmgAzm`+07?sAm?gkbZ;8B(W1p?(1zt(AJRqsw6Pap{ zUh$5M=OVg%a)C%-DD3GrWQX_dnPnx8xZ4~gUX#cv%=L}`#Gn}sv0e%zA2C=Tgys+$ z0xirvdbGZP4q8cRJ3mk`w5~D*Bh_Q&n&7jxFy!s0+vg&-SLl;71>QQ2jUK%Bb8Nx{ zC4G0P7J=XaT&$8sxKsEj2K<}%h5UwnX$?Q3jD8xsrXq6s3^7khvWT%|pXjvLxyqTE zj$UVA0Dl+4O?8N+crZ-CHpd)?Ftvsq^ugS;xFXz#8(^-{Hv?N`NZUkw@c};$({2Oml0F zq>;c}(9v??Xw_}@*jU0t`@mnrBkS6-30n(Yn%rq9zR=XWKzHUtquF&2hv^nWvz%ZD zvR8eJV7^UAL(>3MOVo=~(6o5FBvw5Fas{o6(leyHSv7VUJm+%9t*^{z-&&O^efmU5`RhqZ54lbYeuyf4!+k1!0TpwV!?Lm2%WH&j%hu7tG1*YFMgViG;@yNDKxMh*tuf{YILBu04e_n=q^xBY+h zj?&}#qv(X6RxpUguh0U+&^e1BnxQ^T@mcMgHSp(^4SL_g z3RLaN(H+Tmx2%qUrhPFV6Pi0(gJr~p|9re?CGJ`uN6n2Am57T>TjE^Nj}-t|9sZG{ zj6~>>7z|Kw&CVc`{|m-82jZ_EuXT0@a7cT?I_>nIH&b@EyIdc(2!HceTaLW^frU1E z)X4torG1H_EVytWqHh~|)7Au@UDesIjI8GnHkJG+M0mw4k#Od20O3aYo*&al<;L)J z+~}fpVKLCybqSJh6^=l*&;taw_wj#Y_Nl9|6v-%nf6o7%h@)}~ALXM;5+;bKqUz26 z3TZ{9k;a})h9^8NdAqXzp4Iegy#7QpL^~L&XML~P$o$AEgDuT>#}ZZCbzO@2?my*I z2jp9eDY}fJKa8w@?r-WFTc*%dK3rA1*lPxM8(3I$re1isBKVF>kPE%Evu+`#`j7IB zcl!{#8_|nfzrw7gc6f?jj_+Y%`ELHLKbVd@1b_biFd*U(Zv%p%Vbg?gREK1_RSIt5 zCo_FNJICyf2;jvWNL%w#7bXF|x-LO-rTj#0r0QX~QwDOXRI?uJb#<0o!bl{}UU=}u zp+dTOixO)mvfnbOXK_H(pf?Cw_}vYd=LgRF zXK-lGJdEk`2M_(%&D47x5>M8aR3T>mvluo;+4wht!TaQqBiVrGrdO;qR$>_yx(b=k zBz|lXH-hP%u#Sio;^AQK8=x^@8)N^T}$E>y@?nnzdi8*~oC9 zsG{JFlX1+kXYtR4B&sJa&8No?%Fk!z;H_M?rxShnDsE(nJxETC&rOI?>Nwpq)A-MMfhC3lq96TBz^&Vl149&N{e#^ zFFc77w!Z99&ynSIw63{NtMYW6vYK=jaSu)f0+|k?}I6FohUS=%g!Wq z2(L;f9Y+RQIKA+I@Z4+mq_Xo~Y+j5rlS*AKI1NP~ zYkSNrp^+Zz4FM9p7qx(m$bGKx*d~Q9=NkQ=u|))vStzs4o6s6VHGO-{jz|Oz24A5D z80BMEpX#n=SC*oJORvzCILQ8ikH<8MywH5%Hwb7fv+ivw8LKPo$<_2)#lQ>A7Jym4=6O&cmb^W)~8tlcuD$lGy|AJEE7$X5AJ&= zV4#X)+TKB-CU1W0gw)76Ut7~Z_1PB6|1nd?))QY`zJc1pO#HPef>M-Vt5x1pZ#=|Y z&!(&8rqF9#ubotaRL=|0w|QXXzuro1!mdh+ghj1UC(N#xPus?Xw=@A7OvbB8k)Fg3 z+?(@>GyD#=uIkuR&5{;^N|YB}v4A2Jz%WSCn|#pHgrGuLW8(Z72LJEkLqSL|3BAkR z0cN?8YrOA#PjeNVY>0mYv7H!C zI`?KHO00>$P7rUSzF`ehOlc(x$LV54ZF=gcao8S!FgH<3$n1Fgv1R^3aEgtu6W!OBQDix`a zP;!wr-`22_k5%J#0(7@}XjN>)72?<7uTtpk4G76srk_nFxZJBM2nXa^dX=%2(2 zFe-*46dEo8{p2dNfGECKVRW0Kmd}ZGVV;u1a-&S9mvkf#iTg+~-N(A{li?a&;OR3x zXNT@JW>VQGe1|C5jhLkGG!6{X>&G0Ghy28?_f_3@f4|*2Zv$#e*S4Uug>U;moFCJ( zz2}~3`X~(Xa5<`W$Nm?BIX20VR!vb8O0V`I&M(x-Np$JsEuCWNrbxU z{BrC?*Jc*C^2=h5D@=(?*pLq=7~+x+BT373ljh4Sz#(gX$`-FjjAy+H6N z|Ngeyyiq2709mMJYj0>M4)F%Qr|`H`=CcK?th4uu+*0DbN30q??9wR@7%GnI_BOD# z!a?ZG1O|;P8QgBi75^&IjbW{U?%Fz@iN%T5CnGk@Ou$y9zH zV(l-YUI8-FAFDr8SbLn-4w?O|;~yMTR->@0LG%3zoO%p)cp#;r>A-$PHo(nZq({l1 zHj)c@k6xKrz;=bUMrloe^yOB_t~U0zS!oUQ7AM=kx3>kd6M`{WOg!$NMC=ZEh|#_MsG1BiE3<6*$w_&GJII&LdCnfRO1AF<;* zJR7_T>&3M8nNF5k++3WGiuxx)R-3rYvA-qFmLKHpCe-E^Tv#;O{qYR)iBi83Gx)A@ z=le6IM`rJ;8_(vyjNxwiA5~~An9?W1kJPaD1_7iy8;zt_O}4P#1K!_LxtA#uw<>=* z0KypPmI$l6D~L=rbuz6YV2eWE%lm#CAjJv}xd@$WyQuw8iIb1E{F%4aaY#Hb8tW$B)3YV_F_#(biqZp&M| zIa_T+7_nLLu>cxQZw0H5tAWxCJk`t3-17Fk6(TZ-p3Tyg@3^X6!l`W#=gCw#dd}u3 zrX9DryHEbt$2Gy?Ukvy-v(rdsA4esIX>0vCz{C_j=tsP!Mf;h3AAVR9P0HL7T0-q_vl!WuFcVsd`eT zFI_sBV)$g(dKe(B=smrd4bW(P`(r$8vDa4&1^-V7TXOC7EY8W+f-t)+7=AS0MK&mOHMbvWv&CbIQ!vWvhem*In>@w z=U>{anVX8h?4B+SW1?_l*pEfptN~Xobb|0Hvfp8Ks6))SkI3x5i-9#b{gIFmf4-(5 zub4S!0Gp^(nW{U9XyS1D*{CVfnm`}jIs0QDL=J#fW;(Ae;I^@^EbsZ0Fc<-s%tQF$ z>beIL4beSRV{Sz?hTjq2JY9)CPg5w!khtr-&*~z$aP|jzcxm7=YcZVb30WJ$RU$z& z3vWf&)13e50%Z1mB0W!VZYAHN>lq?5jda{u2C#FHvmU4=!K93xX#=rl?#jSVtj@_*`>*q2-Q#uG<;XG*!a3hH}v^RrAG}8aRUAi8b z>SG3-H*rRwC16t2wu04gR1t{q&(iN0A<*mAAt*`o$)+zeN{uIQi-MT3sQ<*Li?R0~ z@4FR&2Pm9v!XMY?IvA81p}H{(=XW3ele8H(^;7j6GmgkP0MQBJyS7tl2{9`G;#w$)1Uf|CI&SIE4?bgA_~$xNq$)nc&I#O7-aYzZVfoD`=Iy2E z>f5|n#3dngx&CHj(i%8vzZRt_R*FkEYft-PV%f}iuZ61JFEh>G*j~Eo2CZ{+O)}BF zW>hnjS$+%9mM|ec06=$Zml3QTHiS2Dw9IC_hPS8{WuNE4pd`0>%_2#l$P8V3tfigi zt1M8chEF^qKRk3qnlM<5I`l(Tvig1+SZ_4H;%!>_FgsHrj2vK^Qt&Mfm1AGWOAjI7G3KTx-y$CC%5-d+CTFsm2 zQvwww-S`OdhOUzow|0#ck(`L*JF4lqyg3HkTOaNVt-m^qbmP#R`jBmfAPiRZVwmp&!o3cvtH8ndx76M4uEWNWcAH86^YdhX@L%2x-Rb*00r|i8u zmci>pCCR+C!V*u3$*{(tIT*4$9g9bY>&XQS>K<1EQ760g^t7|CH$4>_@j}yYmp4h` zp2oAWv2Cv|c~q%Y`g9HZV?J)K{O+3K@tDQa(Uw7XIS;}|k|t)eFBX)LRq zeF1{+gtM{WoFJtKd<|60)jA%%w4COrbAUW)i}Gqm)w7ml+6~9;0aIMuz3>=fpF?KM z#MZUIO|GbQ1oF0n1L(U2OsgQMldR^MY4Vu;-NE7x=le5pEP^b#U3^I65=Ajd=oMrq$YcZ%DeM!>%yh+7JdpVP%)Ri z@L7t)eXMuWZ!2>6lKFc%lZo8rAyoh^O$?Rg^|Wg{FuRx)3>?|1vLHv^RjB26JlA|X z5xN>+53EHY5uH)Ec3EiG?6#CNLsataEEW5SZ?Q38S9sj0RUmkv+6>$@(B?<9H2S9O zP?a-C&W{4~Cusapw%9*DO0ow7z(`exGpbJ^CZ4{sHWD3q=@PpQ7wHucM&Ud%Tg7P4 zX%xt#EMpmYYaWn*@F+rkP3qM|j6%zwJqU(1aK99*ho|3TE;d2nk?rG|iRl4}CTs(5 z#}_p(JB?BWj1~UKO3i{{f+b{mM-@H*1BaPH1U}E%&PB?h*%*OJ9zBL+Fg^agzBF!0K>>Wsbhccm$dtDt zABVm?_DiKjYw|sZY>YWu27d8SQHz>fU!Q%-XH;BYNCUipuaCjM26E@D+zOY)ItdBl zO1dR+;Z0He`EASf-NT3?4-u|ThV1Tw3twQV9K&Be1R23n>`n1ZepGtI)TWAItpop3 z)vhu9Q-wSn&7@M(P7v{oUjxX;X$ZY9E3N$-{PwI2nZdzG-jjGyM?{2VJfJCF<#awzd{>LC?3?l*7-QY^zj? zt%qb!(gom}kY@iltzdk!Hp6lw%-MAo)vgj-soAv~zRNQD7rX(YK=L{g#Avek&R19t|De)G0Jk3 zn6hzvz2qi&4Wa`0q!RD}H_k|G&4u~mhqqz6_E{GJ|I>b6kmiV!<#y4#STmz>qWBWg$ezV+_bklXNw|r%qh2+R zK}!=Qx;r^o3hNoxb-i_;SPF+&7@7Sw#1$J>g2G5L9Q=PZ6V_gF2dtG>c^DRVjLj$| zJ)o|n`8n9W;cH+EYl_zCvdoY z^E*LD&j)l5+DG!{86jCzmNd@9BGUBV)(Mn!0+2uldOxGv#TG73f!7eQCG(f_?*Tju$2oVpNfY!q2=6$KPXKH_8?M&V;M0yA8%78RvP zt;VF`mHR1vtTt&(=SbUKm16h>>1{vnw#u(H3i~=3sXY6DR5q1M9o%DylQK!;DLWr9 z!k3zMXX&je3?5vK?80?QdQA zXHj(esg8c+JaKe{z%nniU>-+XpAe3`BT>4(#nJj36z6$Y3Vr*#G57_*sLS6s!(#XC zF{jH|@~IH8AwC6YkmpzfamNzu?b5Ld_ z(RF=HlzS(x#-vktYob2gpd=me1n)pv6C(|yf9?0`f}w1&gpDSM^ZBCJR|PyiNuO^0 z4#3{`rkcz$eya0^*pM!?XEkLWowK*IB~0YdrY%0fHswvGC$VvE-hZV%fb*(NE&Vxw zDI`2Ss&dyB!Wd^`yHVnj4Y|&DZ05S@Fz4Y3^hRd`ZP%*w@wji$ zCx-9t7BRk}$VNyT{*mD@iSra9vW4Z|L{@?z30rTVq$>R6WBMxH0!t>sx2#zdVXH&ZO$m{iZ9BnAJs22s-i-V`e2WEWND)zjqDN~4qkC$V}i#=fRf)-XD(<=K&qimwE^ z=nMElwyi%-^FA~{VMQUH!t0s`8J7B5UIDQUPIkb$ChtxT8AR*5jo8F;p$JQ`|HHwi z=S7xBQ#G{OHMlTDFM68?kGQVKyVBUhYF@4hk1oJy{cDq9EHJK)xGgSmev6_St@QuSbr&l2OtAn!Jl0b-k;$Tz%4zFmL!e8G>M^hLJ6!l( zWQ%lU()M}&F)H511FSNPV^uy2!>w+UmXpdOw-MF)!Ly0W^9taHX>4aO4?EIXi3HKH zh*|pN8V9gCK+r~=FTsUYqd)upzZzbz!wBZi6*2O<**ak2QAZwAiuew~F={Fmta3FG zTdMlu6T1FwvKvlT>k%0twqXr$W8(I?hFC9=czVz4BmbQMxZz<8g+Z z{rA7i3xt@cF*P8bAZ+u7JRUARFf%Cg2cQn>vp3X6hx|kq^bH8bW2^o}TaQH^XxIdW zn3Nwj82p_`ZcMw;#XKRf=~5}z)JwmQE)iG3S7a&;WIc@E7gDI&B;^6{;RT}1=CuA- z*gd?tk(e;kjMqpuRjh@u*z-=`7xg!XY z$s~q(4znuNTWqzNQlv_)a~a^#)r6YlBf$jIqc~&>6+mvb<+S<*K(Sl z@aI1l4Q@O#cW9vEn;AR9VKa(sjvcyh(dwj9Cb@q7v~{=gD0d1B69e2?Bs;e^>%icmCT#mj zuB7^8%McJHggKqw+6?8IGxsI4R7fg1+k&#+sPq|xJ~_cGy+S490%34H;rFzY%@w?; zo`4YW?cdSvDdmbQ7HgsVdHC!E_KqVi2KXVDlubKU1hGn{09ou{se#q5R$w&TJBJ#H zBBE51zR6RkFP--T;Vjik^kI@uSQCy#H0@j#G8$w!puLVhv~yG)b{KU`G_V40N}_g& z)y^Flj;LO6hJBjTOgaH>pOKc2!9~K>xZm z2tiz=+2U zbthNjYuV@X9XQ<57ne4ba-Cu;{H2+%buQ;7;Oc1KUz?ratzYZ?is-5);H(dkjx~{v zWq`vSz8D05d{tj7Z3Q5Xk@~lJXy!35a$Gpna|?DkXBTL!9b^T9U|;@QXia3^4znH_ zwGR7_bRopVz;`ps+YU9815-3eB5zGkZjL8kiH z358H;37&I*E<6L@^Z>-{RxbS)u6kp6L8l*NNWW!;FzHW;omvCaj$FY6xjCR2)S3Ir z1kZRrjAxIEs=qBmh+X&`~TCDSjGs}FZ>}N=uo_B+6;u`h11!25!^uF6QC4 zu2r_*`nF4!R^x&*_N6f+Y|M!#eRwleW%|!fjIB#uu0t}zT3YP@&MGlZGbxU15jt}W zUhOKh7z7mdoNR`29^24fg$}w#fq^t=S3s@MI8uJJExX=hnbf{jQ)%()V)f_1O_o+p zyVf0>V{5++OEDb8fB8nUK}rc*hT|YB#-{|%J@)M$lWsAaar&>Yx#zPbUum=VOCp)x zirYQN<_3F>$&B-+z~D8@y;d!Dy`(;PRFzAO#-tsgty&Rc4Tw3en^(L|z$l?lSV^J< zf(v}}3SrFjLyYSu7lUW|!2`~Zu=!0IrYx&@chg(}xZ>07F7UgEgdxj*)Y8`u*87r0 zulcT`PkXF_IsUF+_@Eg*1+5#jq-t-b*L{cGVVEqM0p&Q^J|$JxeZ9jK`ngW#zrScY zC=64}k!jhiWfPz>9u4{y z%GET_=WsP@IJ80um(}KMRip|Keb$ihe&i_22uZ?7MN?nbHGJo_Rg|~;5h8}StO~a5 zx7Ua53}~JZWvPlZyDJxD?RDL~H*K*QCmG*8WqW2Ti$b$~aX?JRgVM9&(B~<(=%ROk zM6$Oe@lT2LH#@WyHNM5#`R;?GQ3}b61KG+PYy!d$R4B~Fsd;M^q{3lwdTFFxs>4ZC zFToUymEDlw?#E#F;P)0uCH9ekfgyq>kWJgjcFtjCzlze5h0OuKZRM8569H1 zloQ(OdCf~Rp~C!WNcQ3)c(e3+EB;fZp&t8fn>!5moJ!Yw9rCJwt7A+Mwkx>^OQ1zH z8w<}x(|0)`=_s<+k1>%&~UEfPX-Kt+wR^%!FY<&r0sD>`0$R-ZH@_G&C}c8md@-)^+jkg;{?FOOMM__E!r-d)UC{-&26nUpFG6VN!^ zCALhQ3!*=}4hFSY$!1+W0oy_S0W#vICax4uw6yOg`UYIV534-7oK_1jBKhw!Te=$; z(ca+Zx^63L^@Qmn6)k=&OfoLWPT^ zBL?LvnL?>AcyzJL+Or#Ry?yrrk5T?|%}F4yUI7JRYYF4*J9!Mx>E=?)E(n5>4I(|^v_tb7((H>&aBLXIt&M5cPy#sDMh0&r>(0xOG`fu z0p0-c_}iax4B%Nt49QIu00%fIxvW`%yh8(6>&?TFX`rkEBmVz}SB~;%U2f+Cw!wH2 zs;Y+|HWS&;P3^#8d}GrV&?yCI1W&kxQDKpA{wup0W^N>gGec6Ok#UA%zxx}?>Ci5)Tk7Si?NPD2jA_6(zv(M38p90=VF(GsBijR4+9%B*R1UiyE~%RMik3tJG(U zNb_;*p@6I&0M#yTQr(KK{Lwww2Mfe|xrih8$;)^Bwh)FTCYaf*8`sPeE$b0gJn)HI zkGQX;Q&t{>5(vEi8IG5*0bP%c5JrS~rlO2P5=orH2x?B74SX_~?VqkJ5tf|P|Gsv` zmytC^+rhA^y6Y5+4}=G<;MB4&{no&JbfU}{TL)vJPTinY2!C3`20aFAa0L}Kka!uT z&OYFY-+vA1D9-})tlfs*0mptqSS(ad=#i2{vzUsiB_(C2X&ALbRCG8-C%>!O*LB}X zgVTnY`jD2Q70~4#eAF{q7s$;)>!ZXI&&V!XEX9Uga|_U?E|R>PGsWl%1B~&dBRe=> zlYOD}6vreol!Y=n7io8lZQvG>-I>G42j(p4dPfcbXinGB=rl)q_Iz`%B`Y#z(SNlT zAwoUq2-PkZ1VBXQ7fwz72qZ!)*+bvAGTJ^p79UgmK(m8uh`yAi8hP(YoBsj2mEW9` zhS&sF>+=+hwq3mU$x61u`_Ryf;XMlF(jaInkrg22i}N7%8MgBuZhkr5fbk}kef_+_ zzAVHZjmK69SNzAj_+YeCjP?;=%Gjn1 zQ^5c@#RgZX5mbPp#1zndZ3++rua#pO7yJ8m$_o_mPwD&LQ-dw&C zLCsgYs${dN(s+db+(`>{6GLr|qZ%^((2jNz1Y=&>JZ$p3ThPLk2zp$Vy8)p-atSt0 z4>c>bro0u&cR2+W9F!W!{nZuc0va@ifexFnjJ2w`=S1NC?$l$leN>LNyi=LU(jg@M zYTfd@5Np|?mNqfB{)1rQQ6>kKkI*F2k^J+N2uP!Ya_DMx#B$zt;-?EtH4ooL_nUT9 z=`_Tg3y*j$a{8=C#3eq_9}4A_1Ur>*vGw!v*9w`?MU?3@z1VT@! z9c#-lh1|ZO9JnA|TsvjJ60v&)gB9t`hDJa9W41>NNb1=?yJ{oiS<~hN6(ABHc%87y z07-)-IZRO~vDrV7=f`+=y6RK zLum(dh)0R!aB{BljUWbimDCTaeSp^4%HMxA6kH}{tn$oiE|)}ffEXyLSCbXw->n#M z6DI=JjE@3Rcn}Ls>wO9fMz4KdFD|iXWV#xzk?I}w)TYUGfX6l-@scxCnifkr_|&So z4~}-FQGx!nNKeWdLBy^JlOhhGg-%kQp@WK^9yv#&#jsYtHLqTf#Xz`xKFR)HMwH>@2BpuBDCzzS$JdVPM6|QkeVwsohN5)lN6ire^d+`?MV7P6tSP^dne^>E8>zM|IG zvs0^dUO&{Wz6ydGSx^#Qg*MnnDJp~voQD`{3NthhkQSNknnz_<>cVDY9H?hln&CLt|4x_mYwR5T?@WLEG8Z1GAXSL+1+W&hP+5lYAL>Kav zmFxZ1@eE?<5$9{S@^#CLCeKKS*+=y2xI)jpX+n%^gHn>zRb$4*ZA7JI6YNvzUN3Pm z9m!$|?rG{`lbbaNxprm^jZ-38Bm?-Rr8**Qh>!O%9@-gw1xwx&3?46936hz_iY#Me6hcHr^o7nInd2dHtHEO#RCwC|5NWN=Lg!UdCsHgIi(uPIh` zRD0M7OS7-EkN+i35co-Bk~2n53U{p+9rJGs{zRu4hL}%z0&atns8*>;bS%ncP-tR)Kd#(Tk=d5!MOKs1<@A4%#bckOs{-~0pZ3NU-0*4cWU(KR$Eph{t|v8~ z-ry~PBc&XecPQ^ml|O*#PrfLT1Z1^^o4+9ap%VSQcfEQW(?p2`yVxbK6>_hD+THdp zQ|t(|!1EN23G{nyf<2SV%EOVfqH_Q=%}EaA>;Y-j$#%g;g}bVmPk01&*_NDPj>Cdq z?Y(DM6ie4A+T@G~k|jtGk(@KAWXT{&GQ$7^3`35>fG8+RkerhQ$&!BhR?zQ6_*hCvO2r2W(Ndk{44brH{w5tm$myNZXZc@#icKrB0?aC8#hUk(#d9Z zHj8Pp$Fsu>G~#*Iu@pMAANjr6B71K_m5cTE+(Wm^ad-`X0!nXD=>bRy2 zrfTSy5@}y3UnV9Io99l-mP}=`qbiChG>gFa4}MO5Q@t8wZ(^aM$>eRg!sh8exh%xN zm+8AfPvyIgQg}%jB8HpQH1@^w84>4gm%|I-8L^oD{VAo<`c7RRf%P+8s(^!S3GFEw zfiuL$$#lt^z$}@UEpL2^E}M$=M#VGUk#y)M82M*RNDeB2xHc|p9rmS}qy4e(#l7!4 zTYg`cZZD*zx7rq1VUHzw&;Ks(M#3crktTMT6E<&^^IY>cGEeQkU3N=7>49I2^h&UD~Ho(5{E2b zmoVI!s^M*)=jU)JuD^*aoZtTc}%ptjDFUoHDmQr)KDu#2yM1a_n*XyJm~ z%lniTlUxB`eZUgnI;j|Iq!LRkWpHLasb}A- zIo#WEDI7mmLat|N>z>cR7^?(Q!k$WFl{kJ)i6UcBY$J>yL*|Ve5$0xXU?f+E9bmKi zpwf3fNxCV#j~@5<5!><*A@`3A-SoPCsgGdl{4x;>kou#2nyZZofr%M$kty9~n-g`< zZ|24Z*q_@eK72d2VQx@c(1(y^bvD&V9vNnCv zuw%egefZ{q%dJ(#jOTZ93)^16Q{J02TukTH$cW9}CS+t>eQ;;nRo9AtCY2};N~v9IsTt2&6x705qRzyQ5yG`$ym`CODO zmy42s?RyEb;6_G=i_u|So!Ij&eE@05ZPPc5R5L6cASr=3TJCmv!r&! zIbbnk=+x7zDv)D1eMrTYYH00pr17uo`KUyPk+Q;dD6(>3Xe( zW(!msP`ep|Q6kG(=nVtj+{UB5>()l`E>_ax;t5Q%k4Tz)o~_z(g%eRPvvhiIFsO<^ z+-LU@jo7<{=wxG@Bn+Mbs-`LELge5J9peWV>jC%J?8N#|l(Abt0L{f}K+K_*7wOO9 zd%h%Fdb)`q2k=aY5FXB`M`_Iw>%0=v&aL}}-j+I?L$E~s;^6RzBU7>GFVQPNJrE~j zJH=lrfho1U77e0i2`^ETE)NV;XCk%Zq)~RAIPbcrHZUC!pCnD_O5j*6?%l3z>sa`y zY=iAp^oJsb-VxMXKIlB1gkqzab}=D}fvWQpn`-yk!J-|$@8FY9lTYAm{K~q?c)ccU zNrD+CTYgLTy8D;z(moRloLYJzU^30^#`u1%hqLmDPzAnmsU;{$>Tu>QSN(jX)G@W-gZgvANx7nG;-oi>**NrNx1r|a~I~8 zH~X+sk8s86z4gVh5z0_vu3Fpv`N9L2n~}m?_^Q?L^i;d2OF77HV`Z6s$c< z9O`h0)A4B|OPT?GV>7soU(q-E6ZrnjxQ)Q&9l;kCl|=K&!$l|<(BBF!(pslKp+ z{w&NxZ(n-yIOprvYQ@cvI9F^SupUF9XbNJqj~Pil zd_CO_DWF4N;;pUN17GET$mH=gX&haTr=u_~73;|$5%bagT0>Cyik?yT87K19%ewWR zTULH|Vj~MfNf3nJv*(+wR~W)c3P624qHoh#8CxILwwGfzN8Jpljsn5_kut7@ty7z zL9xb;COTx2F9V2fEwRSxd^M0>_Pswb^tpFjOh5dt?`klf-G={9df~$uBWZ(;PMb26 zc16&|p*X&!6Mtb_Z;k45qGy!-V}!Y~`Qpv?Q-cb_=ZsPhwqo9X|Nir3E&pRu zB1@g&dJwFwtWX{D@2ZynGRE@(Jx3E**>MqF}JOxONK0{`K~RGN{dG!09KkkE<2iWA{^?s-QTn(ni!pppXhd2CYkTA#ae9<9}?-yfAXd)AN`ectX7 zvR={qo>+`X8PD8esxi-h_{#FWShnSLQc&|YBgdd?fK5%c>~ycV6G4xVWJ(H8pd}_Y z?<`;U;u0aBV2^Z`AU;ONJYQp_o$O-&gC0^U`=vL;d(Myjf=^ZA@&)17(Sy^4~-@s=JVI#y54w#D7XCib8Fr5)|i0x zL=m3B6QJeFpu64mMK#;G0?~_Dy3dfN2YAa2MDeoz;Y%OiM?i;D2rg+8yzVPjseYk9 z;N3z9ftE08G${3gxac*uul=e0q<7SX#Fq|&*vj0ZPwObF&9U(!m)=w~%6m1xv(BjS z$$W?RQmfG?906;2cJ}d=SciI+jcD0rTsy^cZgThWQabe~z5%Snt5h7H-UL;?wH_0t zn3DGFAua}wUL9DeSvWUxY(c3qi7=Z(CHK!y@lfk0@hnP-Ts;?V&mom>@8Ls6tv+zq zT1QR4JsH!B8n8Yq7j?gQ*8M;v6kHTpRbxW)&Duv%5JV|?y|OMh)R!2<)8iWQr6XJo z&ymG`N)@XW$GU^0?L#Ol1g~WGJKa7L<|D_|3VHkj5y9t0{Gvd;v|Eu!3`X^3NlDC; z4e_KETf9$$cia!5+}%Ryf#)kODX1Sre$VfF-*Wr5zZ*Aa)H&MI&8AK(j`4(!t>f|o?7S>_Cj z)MZvg46NWR#S{(p=EvPpuKF=Wb9jj1&31jisFLv!MYf#q)*aC#4RJ8B$tP!>#__HY z6mz62Mn(+?vM`h47wNK`lUiVwcc!o1IJ22f>Oh##c^2PsBfCA2PdWrKT7M`_Gs;?s z;#|u;9I9s{oZC2DkT|$`w?mCPfACIqQow8b91KHzArK3{ zqMI|+*6KMVBb#H$lZ47GhQ(Z^A2;x4>|nlXr_0Z%e%BO~EfncqBW_uZ9R-kqWjB== zzi}U*Y3s1*(B4a87j6L;JPRNWV|pQWvZm@$9`#^qLFgBRkb>sU-Nik|A!fa@dVafAuoYCw2IY3 z*sJ>7lkO|?&jZj^?4fM+khiau3=5Cb=o6P{_QFqF>K^ajmKe1@W$i{HuA^&=SxE03 zjDK>I(v6YE^E|NJ(d?Krwx+W$5gPW$up9|@?v=s`zt)y0-Vw8?ZM2rBvWlc96jJ~Ri%k&7!JKZ zO{gdEL=okvR2*-xCqO-GSH&!Y^_b}c_vdx-i*W3*)Y;Aze^(`Aj58%!hj|-u=1s`@^)5zc=>C-myHR z4u>?1oRpZfY5(Qq%zH|nVocX^r=H7w5@yCP3ELj~3{*j@Nx4N)GlLn+&zw~+Dh$6n zLY=`2x&!sW+#U}PW)lZfAx9mP%a`~}kHUjZt8_9I!Jj#YEpedMH){y4CtuiEl7C$* z9DkX|@2X$sH%^od{hzp0+e`F-5xe~RW77=(D(y9?ikUTXb;48{WC91ykLtg_c z6;|zP4EB9#r}?9fIALVyl_KpkV!@wnV`{(wmFO4y^VN;xOq#-XB zKc|DAknu9}O1#US2jK)Ck=$oIHuIcwxhmDAz?iFOZXPyWYrBw{t} z%+0J%RD~EsgNTZkdv2;Wk;|?PtuL}*|=7El@F$_ON$;t?nR|Mlg{J2 zKhRhBEo`XAN;#h=S{c-M0I2BiLhjGd8=totBqcGD&3uXaZl}Qy?20u9YIn^~PO~05 z83h{Yir3?M^n19IBy0Z+7w0jXHWmM#Fr!m6y;WvcpPCf#WV=ckZ>Fc_EBEc~u`5+i z4ba8pyJ#8F`g_t6&S?W54zs^!WGoVAc0+id=X8Xf2hGi3cqynIguW9k%ei?%NB4qe zYB1?b`B=ks{>s1+_N&;Z`7?O9i82<~IeL@%#*$Z@YHi0ksS(CyM%`eJ}YFn(~2bSSV@o*H;DW zqni&Q4?c7b@+K1cCE^TtrtIN!&CXbIvqoAnJo45&kNN>Mmu}Nx)@uruhGcxQL{C|z zeNnn>MEj-;J5K3`&#NN(q=}8kHGZMkx9%KQg{dD{R~0U*;(vcEZn(I4$nCSKRZTcm z94;`v!;tU!_L! zBa#}p$^BYR%qh5u%=`njn!NV$hnubkaxyqFb=MgQ7R#qr~ z-q$?rt?WrqoBg5jqHL@VJ60xZP#{=F8b_h|S7gRw`yS$8ssP4EBw1;oOUWIfJGJVlxe53 zY%ozcrgTVB=!Nd0LUJMxE&+1=b(Ym>DG?$Q4%1ULLR=6UuCME9Oc(@Bd?X-2c z+=c_^?&$7*q;ZgmbdyQ7s~}O12cK?4um7k^XGuL=S5X;dv?{-Si$pe-U57l%gZFE_ zOqkN{#q!N2g4Zerys0Y+V)B&2=*3JW<%b1(u(d+X1(sHSM9bHCJzFy#dCZXWun)kM zyG&JRy9r`QoSf2p4gjR3tFD5u?DhcOg#uNn#18=dwsk^(cN~0Z+l2n@6TxJ0#$L6& z@jyb^VcPPKH}Qn5)muzhDJ;06b85lP38SOM+7TWR+VFpG<#W z3rBh069i~s-%RWa0unUz95j8>I#VXNdkBHLfCt1c3%o1G4s2szI5Ab^0p33gjlIqa z<+V~Uco#~n-1WOTUq8o_fmo>kn55do2I5{7uJRQd0AqR4owFSC_vK9SBMOcmarnu$ zyi&|1UPs`MObp7qZlb$Qa^0_0M{Y#f#=PQcV-~(ygqPT+oXkAT?1E@G?{mc08Ot7* znXI6s6d)E2B77JdogIlk@72!l{NlJ{{?^0;tj8y0BV)aWS-7tEs&j%oFtKYAUz|31 z%5_N_Mc@$5>*x5>u8(~*^`PfnTS6Qg0PS|dI`l5-=gN~rS-|-Rl_+}KI@I&?4$_{P z5S+6D2N60kJYce;nJ5eY=PWE+%&jb&<6yD?UHgpSDz+ZQr0)e!Z_7X zF$_X74hoEhM;%Z#R+(sI@h5E)Qc2CvqOFndA3It=xxhj7YztRT)qK^T34wv7*-v3N zt@WSwEA?wz#ea+l4kAU6riIn6h8Q>vaBDpUWIY51O7lGXU^T`H0pW@rX+?b)!G=FH zg+|pEwzgnvkGCu-laVnJ8Ma)&D+bKadEo}A8bBe|za4_JCUe=MCBr|7N^KoEV|M#M(lw(#L_ zO}vW6`1Xqjc#WEYA9cNKxp!NR>f6xs?&G$oY4cainiB~5~sVJX4 zu5gh2$zR6g3X@Ejjz?CMpXq#lKh!%0@pbA?Olhu>VgBKZ17u7R(U_8hChc<2X-}L^AHmGl?U4ZzvP8RYS048b=ApLy>*aV^R zF;KI>3xF6OAD;l9n1F!zCJ`agP0Aa@#5X8uC@3f?C}?gH|33Z>{<`?@XABY|A`(&( zGE!2qTco6SZ~c|!=Kl@>)Mwx(KHz{Z9Sjx#^Ckw?O$^jLT1i4w2ZkJ4N*s*e z$KMKKp{)iR2Nw^YfRG5|zb9ekxdA#~zREbKev0yqzK ztSDGqg9UMKz00n6#L7mg`^8#F*zNg4WR5g^A#OW?{vfg>3F?$$2}zUYqp6k@af?)E%JUXK#wE_}d_ z`%3`4yCQ9)Xd&KH+bHUbdVrVz5#fI=0mr{YK+OQeSigDR1mu9@_MB8I5xA*r@i(hx z&Ctx%n4v4gBv3Bxcb`*BTbb|Jb5+$W zn60&;e=y&?^ni|VJB*UUlgk3!KiT&tU=Ybe))H$DX|YX>c_ZK=Z*`Boo4z#U259SIDY@0&-$9ec?KrClm-T zVEuvDF578LWn=l|Tl0jq#HMl5u^As^g}KG0&cx*K_HB9GNld#30Zr&trPIfG2ZyES z>s0L7y1x{19^ZzS)|fu7pcCEnVBU_nr>6^V98V?RD_cmo}>gWh(8f zIB0f%#=7M4Cz6O?u0=4h7j#*=vtFojqJ~$}EMv4NWX)C~6T=ytVrD)NtiY~GZY=a_ zlqDe3U52a0s?CzBKOdL&W4p>6(M7AW2jVMAGCDzwuAe+V{^;eW$nImN8Ctn zS-&A&20eP3JtmzAZ@Jgle)(~{(R_F@dZXP~1I3B%y{D%rV7$3#&~Yyyv!G=B=kSP0 zijjQ4tXIXts_L@vm98G~PDxq}Q*1!P4f~lX(=($bInT0+!I`Rw)L~lvgl{uNR+WAD zATE1e_p}va5Zz+#x&%A-^r|>pW`{2iZ_{w4AGMyhMlaH@ant{t)ib_wmah9oZtt#V z9155mcHJa(xjE0yb%ScQ#HnspGPZy#|9$S5Ilb5xQY9h~??NR&jI%@nTsz2OGUSU#x%%BrO3*Vd*q?^z5!F@8bUetQmrK7Y2wWaRe0f-Ym$_Q0HQojo zwHlo9r+IfYivj{vHRGRWR;`S%BnWiw^N^bfib*$m!@o=+@sOf@`k`-4lJ$M!YC}c3 zH}*Ueq%UcvX7)j}4gE-qtEXL_!C4!l`wLMw1}BWVXpO~m+tx)QWk<2?7e|@YAx#%d zo7}3Jr*h~o`rj@GkKf3*AFQd zoMDJcTPHESQZsvF7Acnr%ib8XyL$XsEhJdeTqN1sU^`>^;31h+Khpq0>zedzZ{DJ~ z*?#4utZrBc($%(QFdwdT3i>t~s=4S$M2{r6l;M&~Ilfjh%|5Zj3f?3$Wq=j+jEWo~ zAKx%-V!GQkvn?Yz@1MFY()8AVudJJJ#^g9XLTjC^U_3QBHdfKt$Quf+sqHefXU~<% z-kAs8D7F~ATGRnsj3CQT)aIkc8v{H%@v8i1jk)b@O5pOKZc z-7UR*jkOv^!I8~}xFeuW5r5OC>#&-|B@}QpGugFqAv|;DIhZ*<|BC*&;vVIy7`uyv-QG_{z%F4IX=0&?xqi&Ij9aXIqY3fe`Sq+1C zO6|#2rA11KhFc1*RR=dFtxsC=XSVx%T`N)gY{QZ!dm4xFLx+*PfhHOOwORQQD**A0w={+)<)Z#of}DS2ReM%rxR!4Q!yJ!ao6ua7T!Rx%h|?Nn7ZcrAC{J(3zSk(NiTgI`7Y~JPq$_W<3Ly!=mLbpq zQnDp{m!GT(amO@Hfg{AerRdi0fgIV>TGxt@9QsC2uaUttiHy~+#*>v5?G*<`>$n^1 zE%Iz$$fskQGLFRwdvzQn@!ca8rNbni@R|V>Ai*xlV38-r8ybSKsNjree)7e%sinN3 zqqdkivcm_`Vc#BS+dkp+E0-=0*WZ>qHDY2>Qtk zYOSqw^1h0SX0hX|PhlYQwV>Ji4FzNNJ$56Gux|L)Wk6f21QW#$MT zf|`iwA|ub!lgP=?&x^nFGbm+#7MQj0o<6=0K~~ioR%mT068CIh(2i|Q1r1eI4lVe9 zJ%P?%r|zME;oP{hwK@Z@S6Efgq6M7-pmYqK10yIc2kvbK!Yuky0UyYOF%z zbu4cQi@laerb)4DN}N)*91D(0-JNDS(B2$1+BIY=8VJ6aw_2HUFIjBqyHmQbUx^?t zx1C8=o7Us9L)`>mRg?A|oVJNtN-UPWOtT`#BD3~=1crx#)nKLwb zO-4^kO9|U-Ht1JEhV3%h=hd5O#574==Ha!C z^jA$zAZo)g*|KYJ7vj@k^0;7y3x6uq`}X`v^F(dTRj9s>Y`oZ_m);p7am~-@7%sNO zR*>1W9m%1;Rd1XwpO09y&PK-Ti`SrAt0>U+^kz-mMD(Je-KG~zAE700r~7%^%;o8o z>!{IeQAKIWZgp78oOhkZLjFv1f7LN#`H>e7ohu6H9GaL*oVNw1+s+&76T^yz8Fsz) z)pow^*PU@+f=kM;Z+s}79!Df7KWNSKfES-xdZ^K?&Bw;Ahun}#_gdyG>zljI9F*cj z0ZXHL!IQMcD&<)7~@5a~^`=^_jmejl5djXqFt+=~f zfX9=uh&Y-ne>$zZ1?lZ(OuHZDj^PbR^rDozU}a{B3I0!{rfjNL?F|m-JwE6ZFaa_t z$Ys^;X-Q*+QP(B?CUi+NBHb$J`qoouiJ6qwa}m~%+qwA*iarL$USQ9vsXL`LKiOxM zCdD%s90MZYdwdexTC^y@Sdm-EoHta8+|X(Qk>|r8yWNj#FuE*D#^t<*JUT6-E_gcU zz`Nxe!N1 zLQUQ1_N=@-tr}@iRDsY{ZrpJ?{fCKkkg%Yz zJb>r;K?MG&n9q69d>g$2?HLM?Q$DiDD<3`HK>=?WlTRb#ZA~6tDhYWvj1|r(7uGk; z?GNvx_gQ$lf^Lls1`(ahljhY7VIm#f*5Z9R}otx;Y$Ta#gZ~|0T z=r3fGvH5w449v+!6<(r%q?ok*5(^{Q64I~;wVwx)FXQEZO6qH!6wKggI#x{Y6px)a zwZhl*H{lWvEBvztw$64&TLJ9zsx_AkV~y@i1~Oh4diEz~k&Igvw0gXD=UN6R;J7tc z-_LMjFnhD&jOu&kd^xC3wfTFPnq+`TV3ohq-2No}hGpy3UF&0bkM&LS8I=l3Gvc0Ny;pklq;ulZp>~12wi_}K^P)$ivG>pBapf4M#(odllo9mbD7pp zUCu@gtwvRnCuLb(vP~n=PpUQb_HLUYK4>>{}Ed zjRJlMT};6{5fp^giIMd_)!?pBWx(Id6L9(%#POO-X}Q9*|JlL(91^;rfeZ6#;fi(^!I&))l7-xqku7EP_x?Nsh5Smf!sw?z>PVR zZ^l07#-&X~vipy>=K2#7DWDPVW;JDwts1A^5-8xO+(GNoq_Wb+c{WcYgW0qq| zAE$e$494fm05zJaliQg?r-GlDwhMZS*gIDzC1%sq8-Ap-pH3g|%wLtCcf?J@4ZV0W z>NL7+Wjvn}IX$zn$nq})Cre;~MJ@wh3L`Rqo^gN4SmUqRf~L+@V0u=l>9~CNJU{6)I4MO>332*V{9nvrG~k_vVpUlPT3)ws6T{g z7{T}CQvcBbPPtP}^JfCi?|dkLO3ujjaHkw=xQSRg92(HXw3)efZR-cuh>&8cfOwRD zXf=*#`&0+|zM^u%IE9#umN+)9C_#Iv#o8e|gcNnw%8XO7`)sX3@Zd|4miqSku~KB} zHPbd!HuIV-?p#YRXS;FDfO49&r(0Qk>=E9Q1@xq|+=c-dFH_27 z#VmBu?g&0maz%D|xHI&X@l47;MI3w642smyzm)qJldi5LO$E|_|8=S-Dz`~p$&Y5o za$NY?sJ>eZzW_ zc6!MTTHHS=1tBw!PI(QB_1=WfGCCH8QgucY)e6dUjM&Z?E$T0BAX7FF7FTbAyN}hK z;i(9`i}F?YmdHSWJ%VNq?OYbuE|%P{T94r;9dRr3nVGM)0;d#d-d5y}MfjioAluKj zD|X!II$=OYTzHzGyp4_ZS5z9-mrl z-4}==X0cSpkfF((%cFw~UrxrX8B(=vM*W1v!6jl)sGwcT zt<&zvV#x>nI<)}_|*z#GBzkX<^{*fX7@Omatxh;CNn+^|*{;{9Qyy3bo11=w~* zB*yS1nooW^Dy&jvJDY2iD`_2OxEdORjUp^gqRuUjGk+2#!cWO{rPbx%#dV1kSV_H- zYh282>?cgumuO(x_*j|Ff$oJzMC~@)99wMGUEf%nJ#I-vzpgpC?kt{?`*Ax%oN3_b zIQ44%ifKPLKT2g|&`v9Vy>8JxK6mI#OpCWNP3eaJ;Cj;;Tw?u_*kPpjB3v#7 zL5yI+IF^epIgZ+#x@O8=+zhyj0*XiVN~2mCYbz7PK$gN0*d&pxUsO^=jQQ__1{l<3pQ1n7){#%Uy5!?NVuM3z@ z7wiu6bOV7Ey}-^MtbelGfd0wr;_2q}TLBvoAJ_>DMWeZ+xe5Hk%H_{6;Xhga3%h@k ze~b8s0lIqrXY@b1{6a)4EU5qkdH&+5s_>@@ZD1gXjpRRMCB+48t!;&cg?R);z!E%G z{K8^9)&c_JJR+h(!V==bg8X29p+D4Ao!vdGoI&7U)X?;KA!tgXV&Xy~U||U!eqj+S z9$_&FFpq?gh!780OjL+p&{|X&%rE{Yzm^*WZG~1&|1Oo7h=_=i!o!D(5~3pFilRyi z5(=Vddl3|PBq$~zAi>YVYy*K_2D=bJKv?fMruY}epw}tfB+A_&=Ub6NfESRit+G^OY);R zqIHu*(}URh{y`PwN1HB>fcTR?Ov-SS~uGtYC literal 0 HcmV?d00001 diff --git a/assets/img/posts/satyajit-ray-480.webp b/assets/img/posts/satyajit-ray-480.webp new file mode 100644 index 0000000000000000000000000000000000000000..a0c4af99dc1a7a2636c48d287c454021cf96a02b GIT binary patch literal 37980 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ΜyZR%om+JL!a1YFl*ja z`wiqkxc)3UGz-Rr3x~!_;P7@Ov`gu)1`$mq1$@ISIGe(FJ2Ba_Zjd^vL?7W_`e5EV zmQD}bzf8%9!bhW$xJ@g=jH>IA%|@qKiVDh`uDhYs$+%UDT41d@ljv*}H)FDn)1l5` z%9Z4pmm zXLXr=sBKxIN^X--g%sw>c3qu78-_><_?>Zlgck&q{wunD;(I?_#^G7^6d^V+N)e^! zpS6^xAW~sEDl1(|z{8Mwf}W2jEb)eTE;t}Kg)a=oHU;w8ofC*<2O%)&QR2)?f2V`9 zFR6-dhgX|OeCec%Je^NDIofj~KybbC|1w}K6REB>a3N)^9?pr&Gv2I1a0X$bv8P>T>-p@Cn}-Gj6>7B4N)ndjayklGZa#{7pUm^4AN zzg5!#0mQ3_p?UmpxR{gxqazGEBWDA)Pd&Wf%iBvgHTcqdg;3c}ymNELcabaxb79T= z$1SG}iVo4J5Q}qBB2(2g!SQ=jv_t3xfcEGJay7PF2U2j-VR>1Gj0Ei-pjSpeZkVrHz6esvN1cS*pP%=>K4)WhVOQ$RqNs& z1wS&ZyBNxN^#ivy4z1Kr7BIAINIj9{X}d1SDg&_D66%vL!sN+bZXguS?M|U`hjQwy zI~;XjdL_h9S-Rf&bnnQJOEutyJ4oTO!Zxq6i$}TBz>fL-oX$de?-Q`Uc2&of274=@ zFy$#*rmI{vi7_TW>`tgo{V+nq$37S~ivK=HmGRJxhp@HOxy*;e0@kF6p+I10hr7&< z6D)GhwyAX{wy_;pY#rj#?YsPVtc=j>7-y2P8!FNsBI(}|4fYFYGOMWQetZ0@ES2!f z^HDb;=?j5Zu=I)8L$0)l%jxY_d?pdl$nPOx5!x?CuuGa#wIK$|sg+ zpeLe640rp?m_RS}o6rUXc=t7JGRSeQh^Vg$^To=p`Iu{u|E`Dysf9(Jx>(p4E#-@( z7yqVRZV*eEzUAoe>}`~&B4d5_r?DNq2HRE(!f)vM3*8jI_PdG%&I1EOzSpCHMQ-(& z!Ve37Rz}G@ewzq!D%GM`)z`r5Hpb@LYI2LgTzR6Ff_2|dY^MG^1Al~8nB1Fr^L_s& zt+X_?#0hgGHty#P(OcXn+j!khHTn5eV|(Bp<81&V@+gbPT+1tbD&!|7I_YL|U(%px zll8cp@9YzCoV#&*hAsm6ho!)V4eaz&+#W;n;=voXExYcjw;7l=Hi_Qu^mxp}s6b%$ zgQ2ocR5sJ2MfG^;N>Os*hzI_5|5YE>c4n^%Jv1IOc4~xG%(j08^cO=&-XEfig1Llc zUY^lJUPJ3h`EWqujdw<=RmBt5%p>XGrK~78Lg^)6%Esej^4>S`2+j__u?~DR=j?<; zN_7+cZ+ICa*0uZojL5n*>UERvQ3aBwVFx>{qAw?>2z=b1AL0b-8q(q)ACqI01NR=? zFVGP5JYSk|Jqs>XT`FJ*?QjSqsYJwB)^=Z%HsvUg=wXSc29f~Jm?d7Vubfm~M&vm> z8W6Z_XX{=e(VGv&q;(aQh9pBPjY9pS7Qu2w%vkQ2mCaJQI0&FzaKr|{KOBUJ>t0ub zQl%zEdEQQGVti5gRU8mV12N0;*AFU?!N+!27|QD^wieEGOj6~$J)~}*RQUHsht<_a zK!_C4iiBf2$xJ6*y@n)5+hannmP@CK8R6gAAGJ>P=VcclJJTgpS~}|@$p0(3I=>d0}^>Glp7e17uoBt^XiRDduPCRGy1#Dj@DW|t9amSGc!3-ZNT&K6eAL%1Sj-&8Vi(AN8gXfdkEgzTJ7?4uC&5k6qF&}1 z8C0g9nWIT3V^@LJlT^M>IV;tPh6&^%_{;F@hUI?&6VjndQV`p_*ic`dejtcWPnPIn zmS%0PL=wW*y01PeZfXa$fByN;Kv=y1o*Qwn*hZ^jq5dug{!fsoyzvf)dIrZu?_h}< zlw(ROF>=Ft3!~)%dJj8v;sJ;i-3W=lKaFEqZ($xE^-5>(pkB*}g$ip6x52AH7nk%( zH!E}d)FA>_hPC38L9Nq`J~XT&mon5(Q?7md19qc~vUo(lSZsmUZ54p*xVwWkRz0}N zS3j(u3rB&L?8;=+qKl&&kDQSJqO{P&X-pN$ux87h0+>~^QSAFO#2h1iMh{HZPp5u;=_iDsz zH#LbddpL}MYU{KZ1C(Y*E-b3%^Im8nroMSbOK$b zLLE<*S}?a+Iz{Nv9%Ctcba5X-qE3frPGQgz&Cj#M)*i9`zU+$^Lj?cj8ZvydrX`Oeuv2U!z=dm^(Wf-zPu_6{ip2TD?st& zd-GNIv$iUV9n|O9c`<|gbdAFWH^WoPO5Y77W(q#}7SGYR_Dq_sGL^4CKK4(kbwzB* zyQrqS1$dxVn)FE6NGbh*%;~5RF#Qfob5d_a8Ab8w(c?Xn##iJ>oYuMMuZO6D_a0D} zirz}zFTA>e)fFU)+AuLDER^r|^p!(cP;b;`z=Shi;z=q}O&ds5Oj^&XOKBytkhjpY zh_KIQs27$X zM(0tfkw4lo))4zxFVXsP%WW!QeQGRC2U2+`tw8cREh7BQ+qBYEg- zMJAtb+H!yjMtUj93H=>+hmSz2;z8Oi=AW`m0m-+1RrI<1q={V~v($BfZF~A8xr^5x zZPo>k7iESH*cjzckwoN#)D1F|zPnQfz;^4_V;V)}H6ILt-L89PK2g@ohj=V`IV2+x z8QvGfA5BBG)+f76?2mQP3H_+m-H7A{f6(e?owu+U<~1zpuC(#ByvM8T2bHhx?dU!5 z`Uhv4tCNu@SVcB(N&*tFRt!4!Q{3IY#u`6Hx~}F4>i9X(&X`ok@}t=@kqUUf3L5_9 zMr%XEL6{6ioT~M-V1c;9mA7VUS|3CL=U@-#_%wX8ic_q$-0#`_hU=b5zseFY5+g{q z%;5vUYBy_6lvv2<zXE8 zKKWH>=nAoiRy*Q3$FZM42X*Y}(7x~*)?q>zN=)-lf=J553a}MPygkNpbTdt4c_@YVT4LSM($blQN>Rgn3wZEmJ2$?8;e&*5bN6#yc{{)Z^VZ+qNCM zdY~8F{i9Wm#5It0?s)JPQYWCbCo-Y}1{S)$)F&s^4|mn}<3tX=t*$j5G2#Z=a0kR5 zw1!q5t;O?+^um^SBw(6RU6i|%lBpK%$TlZ!0V^^ue8i3a=-Crc*;wlP?a=Y~!z?ykAI%fU}x5g}Z$*Mo5G;dMg^>@VuW`p!5H2@-C%9W40R<3f%H>+Iap0JSc|AOk!k z4+1EYlDj*3ZW4oh^#Y6st4KAZ*G@>PH+sLg6WopmiJ2-gd1;C*0*OTAb(yI`_rc<8h=q94i8~*E{ z@r~Rv{jFDLa}l<2%I1mdsqg!?C40~1ZiD7XcoY5x?(i?@Eq(ZhgxAtWtxvV+mG9?EKhJn) zRT>D3X2Hv#Ni??HcYDib_f~Cru(c76Se8-=;K|*Yc7{eIQ8!40%fd`q9&|&dPjGIR zx{T2{;g~8XJU#=$zg;XOmAm60=Ch05pR151T+W=7MoJaIB%`ApU?&0m@1xI`x7u)4 zHVy+QgT0v4UyDbPsnr~6B+Ewj0!ipp^kl#7>gGX#N$%27WPatff73_yJGG}DVDvl( zRTlX?61U{pcz>0>?QCkvJ1Atu?y>BojdJm9Ls-^9S~!8aq)*9*D$%r0Y`sXY)EONi zODse}(53#t^oEjs8c8-#7<;BNu1_RqT^)7gPghzK$AKXbL^y?ScBEv$Mt$@AGsqzuHws_AI6CX9wsCK;*ct^(kK-q%<`BDRF zYvr7BGpVs;#3TzhF4Po~JT*O{yHd;kcEIV))a|(S$uxQ!v(nysa>cXL!H9A8AjUdB zmmnq=?ozb%$h+jGjl&N@crcuO4(_*IZW0Os?jlo-U6eQnU{beqH<4IF1p|KPshnzE zJ$QT1HjqXPSSICtdxXqeTS(}t%&0Lty8ao<3_u1?El@8K&-mRQ`7d8?b;dc57G*w~ z_>AHyY4jFaEH6gAqSVL$BsC{;(6A*LsQmiu;x4Se!-|Ed>dP#)xYO5$Y!F6v-*qnb zJLjCB@!&;AtzVI|(fe%ZXSJ!Tb#<#b=StKWtBWLDcooB#gO|<+ve+nMTWqffD)fZ} z(qNy-wPebwh>Pe=NrH-<*5A8xYH7;U)!P+Fi3mFiEtisB8B~P~*};NyLK)o{7C1AK z7oV6gEYTDg@}DT4X}ugdJEkTJW-?nM!avsWn4^<=;y|$)pN^z5X&dDQ@le7NZZ-^M zDRrPQ@4V5rD`d2JxwLi*lKpwb`YM;S2358&A)Tpxfp5%ln*uMfmPEa26%VH~@T~97 z{pS;U-(jtvBdgw5>pcpI=jtgl{qRQ?y?;rx-83mXQ%31Gl9T`p181P1(|zDnZKQ3yuFW&%4^jdNzn3K~=+(w`;%>T&?X+Q3z7sHD?^0zS67g}G1upG zRIezTvrR?htsJK9Mf|y<-)~XW70cx?V@UW5d-coo2`j(L-peX7QkcF=A7U=>C4l8g z)O<(b0XYrmHLBnqgVZ8W+hQn)#J1hUZ@;sErRE}+ z1POAj2|c!Mz|f65%Pp@$#U7CNCra6nhp9vc(ecb*F?6H;LjBrn0u>m9JMGka8NtBT zO{gaJJtncwPeQW>OaAPKBFR|p7~4|tA?KI?L4YDn3m%|^x%Eb}MPzy<){dt3n%*bX z!qW7?uf-=`H&m12h$6E5vZ-1kJ7_DT*!}8~xD%Sxkvdr}W|CgXYc50UrNe-V)2!Pi z{d7U69G%+9g+;nutCBuuos@{9hZT-_TJ%r6KAz+l{?lUX6fEIbpA0oexYy&_50d1<%wA9Rqf$6R6EhiP&DIewSdE&%Aj)WE~do87Mj}J zH*RpeaA)>svSU}C+@Ye-yEfK9tUlv&9XstQblLn@b#R!OXgAF#$7XnimxHU=5UUFA z@sNHxG-U%rG2hT^iuPpT&%cSB2Zs3d(R*$9g?`KN)|c@sz@zE@mh_aralC36am=rG zeq3|KqH7N0e1B{`;m&}3z|C14=tGrOTt@Wgn@V$7Wwqi5I((TDr~!~fFcPX4bQaAV z_m6xTms4S7PhUc+(D%zo)=>{qxDsYY!lzkR_ycZf`M!AR*zPLIqBvgQwYu3SjDHaC zV?R7yqA%h)8>sF4X%F{=pAwIfl@WC1ZCk@xrt>!%(X^(#CHr~-45<7ggdHvJho4dY zYuY8wYpCSpyXzVm&*9!!A%wI{;6 zNNU+bKi|=-%foG9f`*|Lj-Y93GR5M_UU!OyNRXSO8qAn8>o_BQ-S?|}A z70UFFruE-6(|onmbCwB4lO%>X8?&*#X-P7DOj2mO@6=U4{y7)a(@SR#l}Z*D;Lg^M z&8mBzePKLky>C;#C46~~y>Me5PHSOt=D|rNzYiU}EwK+W9cq@#6Mj;sjng1u@0m;g zdrZ#~&l*Y|9W`^~TwZRi@dD!=B{M7~rdHCv5hfms9kBZqk+Dr72J7^zRz-nRLzBz% zHRHzS?K2h+Dyt-p*lX|n=M%CzJ~({^`*Am}fw)<(sXqmogG`)Xfao8lFMP?%luqBK z=4I?C;o5KYu%A@3={%6hktx}&Nlj`PtWwq5A!j=MRSb~OYCBxuEs=xd!gP{zp`V1m ze0EwGY`GZ@40!6(#pY;ZoJkLJFJq2jUmmiuc%>I?$ch}UcTGs|PI;oC;K)3Fq~${B z(ne4U8(=e378syR^4Yg#%`aqvY@}X5Kqkb;GH0G?seV4~=nV2zD*5z?4M;%hrEwWa zp~8)#JiA(rZc_(xmvibEeHbLF9%J7OJ$?>7iyCQ%SoapCc!yfb9!!WJ^$MWnbni6$ zqebAW&3R6Tn6bQ7J;L&f9$xdM=!-<~tJg6mR&JhcmEp}GtZrM~?|x>M*`e4ZW!s3Q ztspeg>a+12t7YS6CSi}+d*nhBP#33#L2Q8;KLI1-mxE?*7tE&{>cPjt>{yf}Cy@$YgUQo$jEXl>Qtx5D}CM>2XzNllvNm{XRo4t<^6xG*c}jlX&t`;o}NEs z3}It4o?K`*3LXVE$41W02hy0>kUkhY5aJ9iBCLx|a;$C47*(~vc#}+D*2{S5ViEQq zS{+)GPL{^MEer|Bl)xQwU4IRDa-r5F=}gonQN7O<4`lsNIf^OehedoWgLTjGZfmEQ zN$@&EZ=>nH)A(K1OqojNCitym@J%YDuq9zfCF~hf_fURwWYv$|etqk+D)Foq5AAC9 zhtDuoZ4N(dyLbCBK;fTN8&S;8BIX5GT2of~Qs$6X#c**F3+khO2Xj|V-Xrbr`&cmkSd(IbBX5dMTUYsph?I0L~kz0J*ab?nL((h!~g)in>m(68KVj4l$)u zAthj$HJmA7-!nzz-|*9`xL$3+hUcEOe_dKADpyo-*IquyqYO2vn%S&VT1k5p*c%zH z^6--&_>qt3P!VC^WPAKFA-Ir@Ba)bbUIPwC&M-nfmtKlh?IFLgNLY+odN1OA?>^%3 z9Va-L`C&y9BzUp%Q24ziL zk3dor&Iv8fJ;ITliPm&0oZbJP+;-8CP*{m^6^8mq?xX zFjdsx;H*-{(^!=hc4&ceU8?)f$XzdJjX+puS$)4^bL^?Q2H9-eSDh5Zq6K{Rkb^sF zIGk?$@33H|?3%ddue~(n79Dp}SmIR2U9Xe@$A@-2j-$4fUz)Zi@>+w^P>_@Z2s&wJ z!U5?NJqglS%X#F&NY4_?AqiK?j;F9D_4}^Dw5c-t*=$8MTBl+$lQ4*aM*5W8re?F^ z_LJVW)?Z&MUf)hrTXDFRQul0Wv9apl7~J?EF&RFel0oCOIjhQWv5y(#qLOK2ksSs4 z$rwKWw0@Z>ZS|f#a&<;+plcmaeam{P98_HSVZ1%F>8>~Yg7)mcyWdVUy&G-UBrNIr zljkdHoS!JR&xftm?w3pYj$3I1E}1WC`L&NY?ORvqVt1d*P_DMhjy{%5lf6o`VAPov zZ%!wneRWu$nC;LQAU9;3No>hj^XG)1MX@lLK<~RFRkUt42&;kmA|dZ*1Impj(}7LH zT9uKZnY4sx_-l#dA+Cw)s{VZa_`X*@a#OS7f%!NM2hS_cq-Y`}#9Wu(o4qT)rL_d{ zIWl{g-F0{`*TmplASH`G(jinX`^MIUJgWkc#8!8w9U#D>e{WKPh_~Oo8T;KIX0{tb zaCO9ZE$izjkr>(IFLK%yqLLs7&%CxsZFihS;XS1P|;_0Nal83;ZRuQ;@a3fIw+~ew!yrnS<&4^d%_dHu_$T)TsL2sC zd4Y$VSL!F-JA-7Dz}XAMg0_YAbWeS7IYkqceK3czhS;mErHT2;<<&sEf#&VA5P{{) zob?|jVz>SKy3#))8xqd@L~_1NRys{oT2QvjcbY4kezZJenTM5|HBlYGw|tum-V3t5 zDyjI>1$f7T4^tnepo_+xlCTiGxWRCgSoQ`Xv4~uPNHK}gdFX&wb1wIGxo4hs#RB_O zpLww{@a}MRG0o;+2};>R4z6hD-(3z(+@9xH7?e*8*hq+p%Q?-2>Xk-J z9?)R`BO%m$cs0)BL~H41`*K7)ULXvO=#Uz7IY4^(LdLZ_tB4X5XLD;61QX~!#DQyN zB{jI~l~|mz0OE5EfLmhvJRI>>q1C1in&3YQvr%2m`dU`X_qC~=9~qM<=ngjRv(xDv zhxQ@PT19|tmAhz#l`tC|@ctaH^nib%5|U<{0$>Yz5Y@Kw6vo|;cC2i+Qm ze~r?d$WPMMdDX{npS<7QWZ=fPa=y8%0snY?dKwE-nuWpP1JZQlrsE3K`=gFByWTJn|+ zEJpHW2G(z2={9c?RgX0a2(RHwy{16$=3Z9lYNu!nYen@~P-J=G(|0r$-5?r7BsZGF zPQml9s;=J_P^;U62u}b0-cn+piMZYcXkk5_ynzW9(VB9R3a_i&U`gjy`18W2jbp68 z76>~*Ex)xfG`0nEl4Ra4`G4%8aoU2az``aXpmRgCQJ`@vrm{Bs$woTM2)i+|r-9TC zto~f42{b4&RB3`iTCxbZ6}cpmFv@SOMe_>TX#G zyr1faL(g{cZ#AAP@f1pg{6aghRS0hw0@#1 z(D(g}lc9Ps3&Kn&^ocAdA2tbrlL&zLTnML+lvyQaY&@!nJiZjXyNv1}<{FtAW46Bk zB?7_h;DUOr;0oDVt&N<$al?&Oyl1BI&mU$PS*W2qH52)5=U}9gDD~!2H^a;^-f=RR z2M86m^7*Yjsf>av^)#PFp6Ri&AF;Jt-yr!?1gR5>MXQ~ek*-YzLzl$WOK z)|-KS`PSLU4*1Cm!*D;w4OiUqmmhZ+b8DaI;-yd6@aJ#VVEMu~JL)61t@$r+Lf@;; zd^51xPg{Qwa6|f-8uD=zF;eKxlwd3)jd~5}p~~sa8Sv6OVDojl{k8}-;AG#E#X28W zt+T<0mZqsIF-PLa7u_wE@;HZxqLFIJMdcvG6sl)Zy_fr$Z~uMeuozKKP^R#O9MZmv zy@Cxb5VDlsZt?KfN==HPv_`lNwn4kEFb}DY6A%uLyRiuYz)Ff4il=dYnb zDhdnfxG;nU{~T>;NP{#~IVVAeb5ULwgBjV%K!kUA4MrY z+<^V_0RUwGllpHgX5nmRNv2}s?BVQgasM09LaBqUU9JWNb%OiVm}iXjmvHC|LglC|Lhh1^xe}0q}1CIy}JcIfrEvIfkNW=$V7*N zCdXid5mPnA{OlUc4vUpoST9aNiLKUa#=+_KZAJo)DoOqF@0Gbb7fw+_2(@IghJ{q$ z4-anKS&DRjIpEHXG)+oz*ss)q`Q6)+ron~1J1r~E@U+tAp~d}s9vN+GuZZ-r zmf@v?2Xp`=le=)(q!f^cyft(Ek`U8RMXG|FO;6$u{5cI0eTyjvF{dN16B%zLN z?#_8d1^W*GIBKrG*$)sua4n=Xxjihm{|CbV9Rbb%f&g9xAVK|mO>}?=;I_Xg8;2{% zK)7<*v`Z;Ge=lk3^?8xu*Ijp{ZIo{~Q$%lzmNKY~iYJnm#e>9WS~-fs!LmAQeJM`N z7Vf)zvi#rqS@JnRhX)pawE|N0tvFCa2p$@& z-|0GVTkhVQVyF2nyJRTOZi8QhoP|%EM8;<)HXi)IfE+MDM*9eNYO-nXy#By_T_I-& zG;r=Jr&PAqY(Xdr>e><|KsbrOrU5b-TehJ%&0a&{$=&~o1Oo&>UFYw56NTfeTW1!I zPx$NAaEL^Q-wZFDLFdj}NokEDRM!DA00UX`FUUSS&s9q6r=zPxV~7e6*sTH77bH6d zU;y_4$IUb&(mL4@+?CKwwyqzIvGcDW{g$T*IYm=j`#Y-PxGzC74}7-fKqM<3$6w!O z$?Wh1InC)tn>JTzj9m`~ATl*N-^9IM z_!g6lu63p9{obZ-UkAK)2QE3vDXzIl=$(+d0uyARC3H4%ou0KSQa-dNDXJt!^R>EU zlKrllnpx%PceR#z+uKU}Dw602fAT>HMG|*#u%mTr+3Vw%&mIA*BcqXs4gr{pAbpFE<#$126Xf^ z1n15(PfiPhT4Ze~hkMKEZi#}boAeV-E}98Y8=9})8iM#7w%%;|NAD;5SqaXS&j(lt ztGndB=1X75+9?hHhI(P}L*z@{Zhj`EDjPC!r+AX115fYdm?SA<3LEa(E==dq@fdpB zLIn;jGD3aqC#^C!I3s@DY&@z;SYxi!R7Z~Y39oYtl(L-*(sdLF9CNImC9-oruL ze`&sO8c3NLtr^!Q$RliZxrZdsXRh^}yQsZQ)d59Sx?P_nYe_8(pX=R&0rOoIllJEU z`DIn}m(w36^K>Kv);#Ms_T;uXU)9u+POEZ~NRtEFP;FM13?6j0M1VE*ldFvj+0*!% zY0Ik>rVV58<_tE>?m0V1<^-F?2YghFD|@_@`2#*o%pKDWzPRdMilgto?MHr(6u{Jm zHG*N(;?Xl;3K+0B?Rtdbf)1i$K*d?Ba%frOPcCC9{ZTw;M96deE*l#N_aqx2f?e&j z1qYQERP`%F&J}>?>^gv!lqXR+%P{V)UnLrkN~IT~j@a@`Xh1ZNP$c)YEO2}7xmT=~ zn(UW!PpSoA)^u{!4=?d%4Gaj7Q%e1o-?%gLIgM@bf(gTroky_UE2wwr9qyfbOfx)2 zKU32?r8%5y`0yNpS3z6P|^( z*_y2W zqbrU6892t^vV5PGTT?YvUs-vCb9-JH@`CtzKf>arJy0QwK;K`==tqyh!n+;lg!BY6 zKUG_CY}~e%eU&&q=K$H@RlzXYFis@jx$tn#`c+m+acN({|(oOI$@ z`3>da9AsSCWwUcv(=yFrJJffq1&WfsH(y>1SK72kBz*t$BE%q)b^9i5PWI-|sToFC)xXV+RX(6Bo6pWnPL|Tu@p5!* zY97+Ip(++CJO!DfRvOQ~ZmL=u&%D>(DS+bV+XFm+aE*Rzx{NHg(;&rLUt?S6>zpa= zx6f^J3|t=L{DuM*!{y;F-S$eOr>s zDK@1;AHp#nS$GfFqt#u%qSG8BIA-TH<7Z1rdfcjg{yyp%VE8F%;Oxyi#tv%Bun)srzF5$pb6#0!v|?IQyEY5QORkM>*X z>&GY%$vou`TIi|B*QE1OvDDnjis%ucdpX5CyVtkA(SLAUi#POJV!Nw+HPbmc8a&L1 znHcbK`=s7c)!hh&Zi0}l|ri3o+TaLf-%>4(?$ITD?}yi8Zr00 zsWJk*Wvi`3KIO4wZLu`z2z(nH2lgC^1lYb=^?9lO9zJfZUW;||w2GVQ>x|Ypc47nr zqz@2@PoD`F^Kg}qb1}y1>$`YvUpphrjrPB;(YKY&*^F4v*gFpg9lr$Rk5_COT@$J^ z{O%7|JK+% z4lXUPR+{9`z&+z4l0M~?0D*`O+Pzjs6Mj4grn?#Df#akkXBl-J3-%aez(PNCKkM0#5vCdQB)zMD!DiIs&;lx~s%2 zTQdyM00EVXrWW7O2=Vc;osYV-#--mQ&PZ)aS`8Ib9qy{YfbRy~+|~vs_#)Pa%lC%% zvXp9^R^3aWpyqbM*A54BTl2)@(;FBG6seLUYnGP&p;d`nkZ_|ggiZ?%5IciE-NZ8c2KJs+d zd{&mQR{MQo=%V-PI;*o*QD2>P_A8=$-K#}$qja@vyz!Q#_QsQmz!eM_oceg03$n7z zwF2pCA~{z~6Q6lrD4Z@|v^+4rSXR}(q5iC1nSV}`5$!4Q2&#NA@le3q2PLN*grExK zdT!IzjIF=rPYTe10b8@`!Hf90K%m-ch|WIu1Z=i)1{hG{7}t(+^rczsP5(91y$+^8pK2Ac+ld|W#`RVpwU&P=F8{6&wqWwC2HyD3%9 z;`a?}V+PlvE3NefXk1pHDq#LqjUg;UMd5pN)$N8PR}Ji^XML}!M*E;Cg9qi~U&z0# z>Pt#GByymedEG?2$ZSIa{CQQ&+0^OgWBFBskqN9WytszSUXV+DCJ)J z+w2w+K3*0<0?-6(UmDNutJ>>zhF%Dd9JiEWb4|a#Vd*(m847rQY2gC-Qv+$iL(|Kti1uViuBG&(tVK7IfLL}YG^OKN9tPr-l~lFa+KR4aY4 z7ikW!wz=|Enex_-^^56?XX7@#oeycOHTgW4>+W*?LQxm%ne%OSYt|ru#a`&W=J_rE zZt&>ir^wgoowx%u)N5`OqEY&Ka!srY$Ctl=0U1d-7gfeO!c`~{u?m-0{9&mQm;9Q_ zcV(+EO7`_Dr!N2Ai1U&;<qliRFyOYQSkqT~VY2Y3{sHH21E|(~Os?y1gaUs6S74)`!}`S{;h{;-E4A5e zP=)usM_k(TVShuE^htig!MS@s;ce9|-i253=8W04cJf=xb2?=iYN_En+w&r8S@GZP zH{&Dgr^dr5J&{xeM#prakD30>@6>JwVx)mN*_YQYt{_W1szt%c z(EJJaAc56|%HX?XQV#Ad*GY`UJy}!=G#k#*51$o=cVpqhoH& zja(0_mKF3{!?}%wdOC-kblQ4!8u{;PYF6Kf^gzc;vaCZ%LAl-iuWw+$iTt52HHFK~ zHLYVTGYXUE8DYy2L>(BQ?=%>Fmw&vdsT*W_#5-Vu@USr&P}I<;nC>gklYRTPStzHZ zWyl3_Xs&Wvm3&)8fQZ0l5Xy#ZJ2-PFBF#s z7@$s@hd6xW0S0K*mRLVUr765AOMI%1oxEcd`D4{{XD@&=qnMW+$!y9#b58m8S#$LK zfvAj?eNCn$LcKdV1`H4c19mx{mVySKjsIe(JLB{;S@7K>FF%&4|Ag78doO$U*S3d3;0>SmhpE(OnjV63jOx=E$L3f zUH7``53|P?)iJ9dH(6xP5O=Yr^*#2^50?;s!pgj|j35)qpS`qh)1_!iwP$N}QRhR? z4SU1b3s9<`J~QnebH&e&JFdLv+a9%^e-Yq$b^toJZ5CT`<^K(u(S6qUG2{iBZ4K=P z)Up*cbZjgc&{stpAA5eFW>Ylxm^rUR0f@*MYk#8;MOWSTP z)&0utDd@HKaUf+SNZXSsuSIdlN(iWj=-_W*T;Nx3naKxb$@LN##`&Co`M}tlx6j&i zPNQ@)8a!6<|FvuFK}}t099MR=6(4J-maSqkk*#C(=H~q(AwzixY8Dg_(B*NtxrtYD zb7LM7LCAJ?+B(_{==x}Vp~xx z$NsZqCXlWp6>ypgt>-Vo9|F+iJx3jFFbJZ8tz`@$aqLbA` z!r_K>4`)q_^CT7x$r7TMuT@J|pLy=fOUGw4IN_+F=#T#X>$9q_E34jG@(_OMF;5!1 z>3P@LsSOog;_XC61;w88WJHl>l9~M|MY#TKz9r6l>6=pYVOwb5LaVbmTj+=@Dg;%^ zR#LBY`n`9g?VhSY*HRMn@y$=T7cX4CaO?Ewfe}h4;h!_&yZc3WWNv5qleO>Oopr6? z?V(to;|=#(pBCKn=A~t2rQey~gMFEFE^~WMinzYLQg-K2o5Pw0>AEd=W!L;2-Wjdk z7kiqdy?Z0lbEnYeMsDn?SaPH6wzyPxF}vaEZyqaii)(u`8xdH?x!)!(EDrY_4mUJ8 zmc@TQ_br1V&hV$1p(zoY~*U@nWK&L!dBK7-FanoB%QLqxu}J(DSJ(Ig~M}(o_E!Mw{XBO zeZRod9#4$QqKBmCb{$$3BA$mvAN$UFEi12LRY;n5SJG|H*2l^ES%+6<-WkoVo$`M7 zG`k6}%|H9wn;toyu9NzmXXiWYUuH868;_!}-YaFZ8rUTAtgJ&O`o^tClHaNZS zgW_U)GWdgT*y1qtUD@6CASY+r(@bly_vb}uo!#+3Mo^C7?-bQPAT}q|q|+TQJ%SzmiBCTim|m1gpIaT_7$j+@@Ov|{TWTTIWDYZddJOd;rZ%Phf{?YwH!2h~J+M6t+!^}YaK z)4Q!o)AiYH9c;U9@cO6A8!5}nR~Suq%XsCyfN85we#mniJatV}wJkpU#d@PNv9rw2 zQdFNQEgk-9_j9tQs7mbt?!4=KV0ONKDE7K`!BSA6pLrE*0SBL)y3J0?%D*`Fh{^T? z!&b_{U59tsPD^5ZDiW6JugsY)mBd%#=R4!yi=u7Rm~XOATn^V>RrV(SU<8jtYx*O| zhnBijCnezb;+#0cp~YuJU4Ap(Z;`!-DdFI$`Hf%IrbfKW5z%WZk(H{L!JEi9vS zoGU)G7~I0mS>2U#N20xSWcHI5$Hjf%aZTUI)dH*Z(SpMQN?otxz;OF8r6=!rR%pjf zW%%*-QkyO#e5aG*nAgk?rxza#nVo*Ky<)&5Y#;L4*jO;QUAo`t<)ln;NV5waS$69P z<*3b`@d0>2wJGv+mStf{@m@Zf#4&r${MCH_bB|HQt>Et2CwpdYoqAzfrg8Mxo}E=~ zr3;pUihwT?b!5FI56*obIg(4m6~!e!SOwN4+r88DBl z@kVN0)D{f}ufcSrL5pI+n=!S1k(*tPPVj0BTGf~Vaumi?7y-z1KpJyGl*ZjAoM8Ex zxQXR472N_rc-~Czw#7vV3>F2EsKF&OEXW-~If>$O(FCkWz)~bDI2;bd;$lJwVQ~0R zGLtEQxI8vTDB!Rd7=!Ib3sdX#h#JLQXaJv%10)__z~*8cA;jQt5s1SVVvvx{WkVRB z$7ZmSc^r%(aPx<2agc?G>Ze-qxm<2YP(VPikjE7S^Fo4zK|GKzEapcnK9ebA(5P}$ zq#(5f0s?{)h!TT0YA_{@`r3p*QblTIq#TpbfU2+O!vX^%w4?%8frT*@M1fii(PKg2 zE1|iv5@IqT20Mz$7I8sh@*##m!~hb3Z6bh&E4H{vSqzZ65K|E4?$`c|6l@7OqDTH6 zv1@0IMI{v1=}GOD@!XHZHjR%|ICU)ZL48ZPOnP9_1Ct(@^uYg-2VP&tFf}+SrGm@WKL8d>Sfu~} literal 0 HcmV?d00001 diff --git a/assets/img/posts/satyajit-ray-800.webp b/assets/img/posts/satyajit-ray-800.webp new file mode 100644 index 0000000000000000000000000000000000000000..81b18ae7926809661944d24723c7041770a424dd GIT binary patch literal 83636 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 nDJ>T+2921x)ftkQ8zzzU?t9T!H28;tb?}iir zYk(sFv32Y<;zHm&5dYou2KAEoEMUZ6*cbMF?>YWyZ%=q0u;v#SKnKVNRDIUHGq2~T z3r_-PzFwasJ`LZQ-}2A<`u*4af&$n91Axyj;t%4@x>BWM;8Q>bQ17$ln)q?<9{ABW z4Qzjh0@#1&1F_%cp8P-Zfxwq9=prBcu4ToAxUdYeAHkWJ`h^ z7RRUm;Ojd=@je=(K%e?Jcjq4)Y>j$uYKUgZ9LIVV>JxkZAnpXEaONa)QgAJXWl#-r z%1=n12lu5u{cEy*i?@{0x_$#t4Q8QPfBQ)5s@6?|EKg0)oqiL7Xu#~5=?>n~L8KG9#I*pxyId4e}4&q$A zs@(sL^}q1`FPl$2k(-CmgYqNVJV|ua)G$wNr?j9(IEW}olv-5@C$xqLzq2^Gn`(Q{ zS;(c8@)+w>VN2%6LLIfc9(|t$9YwLC%~{&rn=qpWV>k95ONqC~ez3A%hC8llRr*a% z3lZ`lv%tG3J@|jTeXhrmL1as(SaXID2S7B`pAt9Ss# z?}tdHs^^Ph+x?7H*LrGt6gJ!Z-U$W0+9o5;mJ#!@NYdt?n$*qB|6_YJdv|&w&<7ybFL}$d-ht;&Z=GaPtiPI|cWMD?QnSz#NK)Ef& zx}*AxML^i5ED1sY#Sbi-KT1os(gbB%bYKm#kc0j*|Bd#}E-qIrMS<#>%))fRXqN$W zlW!7B(*LH28w3Mn?o**;9AIhbqG)Pop=3b<;-*k{!`+HPWK~UMXB7iA>mXI^p#M?S zh1@3$kXAEJlAyP-gcum4dxDVF-|<@IUmqhaaym=6>Aw9_XN$pl_k8i+m(W=k;L8_( z9;}iLugfjyTt1{gsLNl{3%5A4?s07wDrqX0L)R z8xNa)u0bZdu0?qaju>s?h!wppREfzDTUt3HcOAz0SmZcocy@h!iY}bqp1H8dM-0pm z&GhFr6NRBzAvwNTt0mh9=8u2;w5Uo`wMpn#BvwZ8)Klk}9`P5UjP3iK1;kUlOxj@K zRQ-*W>efTEB;-1Di^)d!N+na}Zg10a~9F&nZgvuA2hMFDFVjn8j^H~_&WJ<3YzjBHafynLyXcVC=)t0 zbQ@j8Mt-GZ$~0`k2xj&9-L$sImgOc+IKdr_qQY%2ptWcoUod9k{}sAK!mFHq)*ji- zT5$O;Y#)SdVVh4=&f6B7%yQ(Z)r zH)=*Kym}%|t^ArqJU#JyMr6H$TGzR5Ba^-&Bd;<9A!fuCbd-4A&)6Ou-qO5<2&1Cf z+6JT)q2`mnuRO{spvO!@bw&x=b^6S~H02l|K>!m%k-Lyi1vZ@X&sEL$lSa(w*?$rJ zT($A<-Umx%%{09KX|zjfX2^hLP7#>SO*YR(VT>-e>(>ej(>W@nS?+5n$*O!cpLrX9 zD*HoB>_$YkMtOWf_Rd+}UCplv`HukTiqi!}p$dpp;&aypQ8E5G+l_U?bb%Wv_L(sT zncfk+{;Xk?A|^DG2@gc&(oL#`5+A0czBoE4f(g{XixVEP-xxC^LUEh$#Bpms-0ozTRJ^5dH*RgbIVYAd0QVd&pVh#p;m5fIo8 zm_=+h+_aE+4cz(Ei6J3!=cXX{vb5Vrp z)+p)F%}Q1B*a!b*y&|Y81eZvA0@VSnE_#NjX^|;Iid1@U+_XmyCu+@F{}b4DZf%(50Ey zFIGuD@Cz9-CMoctUr891+CxYFcE{tiaL>LB-yKWEX2M~6G1*9lj|`6sN;C{b)L|y< zar}~zLqzDbu;l#t1q#zjmS_mH5cb-`uA^o;dQ})uZA2@EXmv!ySNK4Jmq-i4(&14`_r_7cnNqZT7ur|K+T5Z{ zO#L+9RZ~Vr3f8b@+>E6pHna0qu}J@VVbK859|k!dToSszdYnJCvX~PNWycOtL3eTz z65H1UDS$3BzPmN9aCjm9t`O}2Ug_LcU{-f)Wl=MtY9NImb;?E?M+^;RiC|iJS9H`N zv2yyWg$MbPGARs9ZjidRv1^fQNn&Uk^~pqmVK77fPEj;((*^JX;NE@j?<8{LTUQj) zxm{%DcP2TQ8SQdV@x+;R#k7Ujft-Dd?iayeEf8I@CW`v&7~ zGE?`IJ%KOMM{Dj@UkWPP&oY^ciScb3UEV=J0hI4LS>)bs;O`}QKefa^*rMlEz+#~U z0$yHV6X2jy`u~|_M zHV3^k%HkUn9yAu(e{%Cbv^Wr^_*Yc>AG@&Wg-gejipVLNP{=W~jqqpqwU8xx$)>tj zJ@w2lW+27nyDuy2JC6RJwEsWP{jbUSl-UonudoD=+a zmGMyqbWVlQ3AkK=5pKb<%W4Y(IAu$(PkT8(LAs3$ELReQ2w95XSDiPl2<>;_LcP@A z^w`;B`Qf+Aigaa(;cH2_{EPLyaudWdq5u9GLNuu!c)HF2n+Q*uhg%|AqhZUMU4d%3 z!PMUTj~w~81f;PGNkMi-v@n$!ehY`!$vnF+8uWrwX8M1*lmEu;|7*N{){oeh83Wp4 zX0HbU->Y?Ne6AT_!XfWz0Az zNr@*P&SL$t6~e}8tH9)px?%+Xr>E~tT2>gCGKSJN3e#6?U|5C448e5y$iRSgdM92(4lifVFIg^p1N zQVmi@clz;vbnL&y_Cd1Mv)pDOl3dh;fU651w5>$wKcAuhaK;P-1OQBYoXD>Kb|D1x9_UJ9kXp;cIhh*4?Zo_@pyySG@RBr3d!4mcC@Y_UGG z_6Zsxa@oSZzf+b?rZe(pOc0fnc8NDqhNxQTeGY1B=Vh!laA!@8&Qv@J9@Mm1Ewk{uvRFinHMMk= zQ-CAtbU-YcdBy48JwdQnN{9qiDVE|=A~V8;Xv680xtNg-ZaIa6FFF**Hk&-^;hD{0 z04{ZTIMSI+oU%Nd!rM!XxL1-c`{3o|x7fRT{` zL`kuuG8cD68f}H0#j{8Kyw@S^*&e$qW1#w7aJOK9>OR;^uds%|#&fYqTPgI-0;QWn z=&osr%3G#Igh|Sufw4c{_AC0;d_;vVGH-r)jp86Ri?&9BsL`u4tq5z`(Vm;&Kv{>H z5fw|@hH~kHx8S$7C>#}N^@q_{QB=T*o)52|T~-j?lMOw@%cy-yZrv($d=?r_mm#R0c!GTJyf!2*f72X3Br|$KcYA~)ew(m2)I*2eG)+H`gi9};k8b~phEKaPN}9aMQ^ z*80RFx4i(_^YGreyBy%^X(vF)d{0sLgsJL0@tbi4fG4pBV5xZ7q1N!~o{P`@R_38K zLvzE!uMv-5kObINJx7>FnT2Gve_AfDCc8?JG^gYvq_GndyA60FYUK`|te7slj6EHQ(I}Xkcf$RUf!?1B&1xBprB{~z1wNR%paIa_Lj}!ss`gqRKFp>Y_&>A z((lcg~8l==++8lCMQHM(qY(R?oi@qH} zv^RUzqVB*OLo@IVk?!T?{Pv8QYL=z_*$qk*@pn|fqo(xLNT_NSyAmavykd&|u5N@F z1d_{LfgMg`Qo6xNgl*YsrTf{PX;G*V&pHV=Ppnqd+aPPyG8TuV^`Lb~MMiDng}3`B zm;8FPG`s$4Q*}M{0!(YoUGrgWzu8IipDMM6v2QrH%7WZ6j$uhrC<6u_$@$`I7 zmMz@K`P~+1?^!GI=dExw%VK!d*oGNspcI}o6m304T7tUzksS^mT(~y`dL+_PHu+M_ z+G4W0p3Tgmw$7)ke;KWj1%_JQ0R_6BF|>^n%0ew|<)3l9UtHL6Rrm$cDU$6SL0!N5 z#9W^`BIEyF?~wP#{H~CH6kFS@e4#M5*_CC;@}A2ynAVd5xmtrUXn%H@=`s>cdY3#X@eyJ}lUFVhb}T7i zF*Xuo7c|U6sSYb8VJXx({JL)3hZfie0fE(zkL4}a5A!%>BGV6gy~*Y6!{~<2>{Z5fY*}}7L_hFvL6^D}U8e!~Fg${(2F7)aK)X~MuO*ekwFF&ezo4vZ z?R$uzzM6u5B2j~{FG%m-u@w;kwQ1LrSp#=JO59Z(Tt><$KZ{ykx`qzK0kTRxzs&rS zVoS4{U4{Dop9w{k`Igs?Zo;W)6V|8euJOeNE3p!7B`_DKGj>_04x94YOEnA9j^O|zY zwwynC+)dXTTX-jwsbxu`%^dWn??YT-!gyLB*>KNH0uV3yeM8=4+|tr8SB{q&S;jUZp0m}%xa1Pw~tp!JN3E;K2( zeIUYp{EI35%p);uSa7^XeOPnXy4P}I+PT8tZtBAXm^SAHu=s(U^+uuGH%XsKlBcMU z_J+DP4^>dC>^m=4fW3=tIE1?p1bEjQwx`F-W7WE!h^ap-V+%$z6xEW2z`(o&(E{bd-I{F8Y+Y{{frwg?1$4(tMJL#d3S&NF_e z9_gw5`-c!2Yz#(X#nx-CshNY5Hicq4-7RlJeh(jO{~a!yK21KS z6sf0VdU~`0vUM22*ey`ipK;arET9Jfp<_cQGwWWZcihRPpDJS@wvpR}*?lf(sev9o zE)ikq4Objxa1g}eKVv{;C5g%aP2&_!jI!sBN;(GpGLS(F%O_h8K62URJ69VD^;HDU zfGF10K3`x~zsUF4pH~sb`j%OCWjXx0*6@Pg+U7vez6vZip(HVh|5izB<2zjgp>UY0 zBci1K#kdZ!o2O8K9=wHL(JSIVn?!V^PPLPuj>LwN%;T2Jhqz%VR~uvTvw3KBD8#5r z#&p4aPx5O{Y1!U9)HiC<43rwDv5~EVYxbBY zEH9e{l!TI_MaZp$fDUVMhk z_68zIV-Fg=Cd8ES1xB22dWmuUA(aq{8Aj{XXv<33Cs%=x6bv|wF>8v&P<88NfR(;&3zGURCBauk#Zu76mg)l?3MwX5D z71V1>MKebz%beFPCn{5;!$8CyxAK14ctCDFi4u^dwRBp52ebt@n^MgrHhv^!zH2Qh zj=VH(Ft%SZh@LSP`B#nJFlGdaUA%ASNCG`m8R|h<#j4pR^fPv=5*^|P0pVF>DdT%+ zKHy#unI!G6I>I8T1}^z;yOL89S|t@p`P4sF@!p3X-|@F*wB}>jn947)XJ7^XBeY($Qqv&Ja#$ieEs^#3`2N0*aLd(qmnoaR_M+5#2vm=GJ48#svaH-!HlGbppua`yja0&}uksD;szLbNcb}ld2X5lSGz&nO#g5+QVwmHVZvG%~ z)+_u72On5+E@5&7=3)u3!bF?hCMI*2Q<%4ZV=3)FP|={Q$dVsv^Hx2qp82~^dtAXr zG)y)`xyT?!1U@%9gzxK;pQ-%qpc&MKRs9)Nf<1bDJ2~k*XHIy~6rYH}^0jgDh>IG4 z^ee*g2s5<4isHG8h}(Z~6vR=$`)KG`vw)|!O{M&-NaBJ>SPkisM(^b%T~DY>uRSN( zbiMj+o|CvDim-TMSkdN|23ejD*FSu5_C9y8p{#Uxqgni|zQQ<2J{Aoo(T?URmWmX* zTokj+QBtWF8bI|^75%67V4Iv|%_9Ya`9C#k0&86D%Hh%q)3H2$q~%`njPsE49Y~oo z*82+fqN?R~FGmqgqEC1QQ{p~&V{xHWhYSDYhwl<2iZEa?-K@9Pn9v5?FzXu6qncx= zX@i#VbcegP6thEo$!OeXsz&fIRRWy7V^)(Kb_4@{A<>jth<5{1)S~VA<*=$%3fzD@ zRAv~49gk}iET06-ofY+vc-JQ#Ya{{*IfOrE&r?L}CyG9I*s%5vrMg~t+9Dy8%oOqO z>&5vd7<*RMz`;qWxS#{tQbbl=Di|y8-#QStsT{mAmI5!esHKpqeQlia@t9EF2kVny zw-LSr&|Qw)QotNJx#Q{l-~g8TX09K3}2R@m}Usr?{QSZ+v14g%%_ zd0BRiC-(H6?7UejZ-zGCu~%%Y!;uA^q)~;m!&RJ0DeZlu0Gt(8Nlz7Md9JF;srs8z zfs6M)qOY|(4 zapI*|V(do*#7VNxnV4sq_n{oW)>Jl70Ml(MUsjGxNp~H3oxWmfcOvYxd(T%1oTok6 zMpk?s>Dq-a6yNbEAkI#j+S*VuG>3;}n#Y$TbY=E##d~TOKie?aqX`b!dRGV1=r??x zlbF0MEq-?lo*n|5cGt}%R=(A5X&ftUfx$R$v~f{Lkz;5ck8r^V==}jtXzz+`>p9N# zVp>pD$s=qb313vD4eHEW+Ot}JZ7MNptprHiLGeO9PT%^r5Y?wMRR-xGFzix>@AcT4 zLetl-#KQ@wdYkdfrx3m}l0z$(%NJEWpem8{5kU7^el z^{R*#k$@lX{o`ihoUOe4ApnsBCI8xZv-QZo8i~_cbXJ0KNJ=!e&LP_?t?{8-fiwfD zl81l!R)0nIiyJp0HEMd$@jZ0sC7R9kA!oLPfjDS;&AWv5;PAMoN4-FYlS^7`))7Ge zC>LsTOl{FvEG)4ZjoLMXmYasYqFP$=@cuTlrkt6zFg^}n=X<% zpl;blz+d;%dKw7TbXb3zmzU!qRvmmglqPgwG+~iwhXBF9_d3a6D_*ITJg}H28&Uo;$Jre55APG0HS(~E$xc=UPUMI9svsr6pu_k)Zk@hQn_iXXyI zeT3p*3|%&PL3@bag&gP;#qj!q_S&$}O#U-x)1=_1832g3=g$g|`0-V!B`88z$VhPn zwo|sBW#;fOrTw?J5vN*xF{ryF(a7_>9rxMdYgxPUY5E?oRE4!TJ$5BzT-_uF+q@d4 z1ij8Qt{VG}=0|uq#CA&8av*#cBo|8=3{+BYl(k{CL@iu`Tt@`gC#?6(xwup$OW(2k zdvbTzpK!MLl6T=vi}_fp8|iXl3I6Y6{Zb3Crs#mFr}xtnyx zzOZRkJA9kld3h3Mx+S=2*8#=>960j~gm8JJelb`|u@CiCcuc z%m@)C+Nkm{#>ARcZIKUX#S`nbceQYNfnYKt~q@98phW8B6PEGL2pt=NfSkFW=)|&Bd2@r|t? zgvlNR0OF;R<}hbf@70uR1YHS1ejD`2m_YcVj%qE>Q!Ja<;X>?Mw>(R8^N^4q17C*9 zSa6~HNbhxHb)JQ&ZjkxRgjr98CxOBsMrLDh*WwF*;~jjMmytY}nCgJ_Y`J zjQ3GxGIs8>s=MXG6cc{wu<)P0UnGWmE*hyEVt5>`z;c#HPUr=0ki47)p?0x+>T!iJ0*aOq}`rz;2~2x^82% z1lFKp-zK4LcRx1rlmnsEfe(lcPkilH6rrJF1X$M_7YO_I!(}#aa5CJilSj^{!%Grv}Lvg zA3aLCp`pg)P&;vwC7H5d{V|XgHmV8qB2WH{NJCA{{@}46A@it^cN}qAf^0RQp zQ5-(W@4d`W277B~kA7E)RuG7$hfIl|+;EjDYkTDIamYyfg~pJ(CDD;L#y=DDfKffp zK()gSaAOUim~}e~gNE#lD$DMvPDxYx4Fc1Y>Y&ewLFpedNjMuY^xXujB{gcR+S0%I zfmTI!ymmwDY@}6v%`IKckGxx!2KEYW{H#RGk)M%QQv~s7HN`VrOfXHFt>^?U$OeU6 zG2W~+4%>H<$zSaN$?>y)a!Zg`>buj5yd4!|zW~h9TxqDR7WXZis&1AOO_&}>S54wv z)Dk=TAOHy+A=4t09A>|2o2ECo$_{6CwP3>(Lyr}W8D~DS+gQLlEzH7ckR9iifUcg2 zXQnc$3L=rT%kx6m9@PP?zS@&&iC+nT6)yHbCx>h7&^EFfhZb3lDI;Ry2#Scw=Xadv zsyE`!=x!YXB^(VN(=GiiOp8+`*D~2SY-C`fd-Y*nU^vXn=Qi>t&pPWlYDi|zipf=-+_8wB>AW~_I<*DGE?F8HLn}*A(-A?`1P2iaT{DT$~oKFmhf=K zfJ<`=zMc+8k5x!N+xq)r*ng0wwre@65s3jUNTy=D!-SuPrK?&wiB0W#(20-uNVUbK ziyZ$od^6HmiQ(h9-Gm#F?7=(`j^c|j7!f9WSjFx(yj>v&;boBqZ@+GQvdjVZaXZDN zp&5zLheiUbH9nA!TCR!1S_Ni4&~eGyt3n_xvy)90&I)P7$F%oLN_ZEOvsxfNDAAb$`4=1Sx4;&O4?{4{pvwXmfkZcxUqTEA*M7fvxoETHtH+z*5Z@L_ z9BF@f`VlwZd@WfZSq$tc8#4;7)3>b$sDm7Y>zeIYTX^Fe@^)k3r;`(JiabLxZMQy~ zW4rJeZc$=>Zw|?QOTI5jB6Tns*Dqg~Ettf;!u7QKYmr2-#43^we{^XpRhMWIg+8f( zfS7!YWpakXadfb9=>V3`f23@DgftGleeeam=*oq&*`{f+84BrC9`Wh#6vuZDZg5v( zefrnCOmEBD4>Ovpychi1f@*^ahoE)FBuHedNTqWZ(AtKDSLHT$NbCsHHM&elF-3_K zl=^+OEAXR=y$EnGiDW+MrB7icy{G`q!x{lH`ih}?k9T4zpQBz+yh=?SOxCg_`Y~)H zn9@p0BsbP=w9^*Ms1Dc*78hOYJPH&gy4T_rvD_Dnp0l4!FR(2dy@z zYDqm9=iS;YHTm0MbC5^t*A38Mbwkv(kJ$L!0~<1}0{vS#dR>Nr(>oEi>=ACC_p++U z4;>VMs&+ctf~y`V^r|jRmX&W9P+XuEX0=n|k-q&9LNDRav*)dg7F2(xJJ-4f9|-|I zaV)Fpx^zh!IE>9NFd=TH{)QzV4zY9qu&Wx@%&LJeJuIEspAR5F!NrO>a)gyIL3%JR zYYn;YjGCqO3WC?($Nsft1$q>GnwA)RCMRo4HEBvA6u@=JG3LE%cio=hS4TLT&@?tK zx-Q+1E`T0ZsenrE4BJ)hYKQd^YuD&`Fi+lai3;m(Oa}Y55)yWOHA|4$Lc59U?R7$I zR#5}q8`(jSvZ;lV2fXOqD^WGn#;6_Hu7#v|?9@OLc*@#WGYtGC`0AOT$L#TWs{MAy zl`+pUTI>-6TYW~t_jlh}s(I2?mB^!=-@fw?r&lqc;dfZ(poEPw_(w*<=KPzZvzD%0 zY3vi|v-xJj!&hT909?XJvZ7d=z&5Z}1tXoH#3k|wls-#@<(0#0^?0yqIKdta4s*^nTsbl9_qjZ{_7H)}r`+sqo4e-_HQdR%>ba{500kxN6l zi<(kH6n3P*4V|on1ntTH5fRJqF);_GWP~SMOc|+oY*BA}dYJkVHphxe@RQQPLV_7? z*m}=bu0&)Fe9!kd9fHciyU|Jbk-Op3A)zpdLCTnP^c0q?p+jB^-iZJFlb}u@Ew_&F zf-Zlwpj@QxZY8W991>zLcVcoR>2yhXPUih|c$Tfa994gEM(Zv_!THYFR0~-ESXbNc z-=EAreM3A?N%@R6k<6A8yZh-KTJukVaJ3byGx}D!=tz@StC?)td-*2nPPV_SnXDVj zV8myVyusV4!^a9fy&Pnh!c&#D2Q1f+-WW^-f%I zX3J(TuY!6k@sF*1d98UAT~rG}8;|I!Qjm-qQ*igJ<`NBmQkhtI_dPjoYdH3(u^A#T zg7&`MD26dJ&^Zl?LiL|D_@9Xn0Dt5Xf^zvs5k_5VG#d)c@A-zbk0$^U+MHO8 zLwMQ~k--=LTc>dS1;G$Wkex2`X*Vas)iKnyxV5}mSu$dy%AA4Yo1omR3d` z2w=?a%CzLX8R0KEN8GqN)ZjzK8(;urS_LwbceCaw8lXBi=cn)Pn}OHxp@FoK}4b+st4;z(Ig;Z(0E4h&}^`?`!aEOxm;Dn^p)%;FYx@9j^@N%7iyiul0UnGKSRrMk1V`kC+(jOMuEyG z+THV0*D79s*54RVy++Z~RiB%#5Q zL1-y(TS%;8b~ ze}`-K<-lQnvMdHQcsYq$5~w$@!Q?hPXyiBQf0+|%+o44sB7!!~F1T@#f+P{xbv2e~ z&qhSmY>#c*mh6Y(PimNt62{-#c61Nr5}T4Xj(^wbuG8ocA3!15KPWStmfrc@(xTeO zwvI0U`n%LE)%}8BUBqSXACrx)J+%NGPlQ3YPH>Mo`Gg(9B18MR2}kLZAnu$<@4ev# zfI>IpV^I{`4`#F^mv3QW14Z=>$9&Y_EU{>Q>PoebSma(e(w{o&i{^0bI2#YGsgqq; z73}s))^dCD!)`PY`7W-d{)9z|zrrrv9NQMUN|w`n*WbMi_=(EO)NbkOG>f$MdrtY! zrizxA$IXL+IE)EUPWH04UMoyyYqjed81*5$4la*>=@EfItSuea$$h<# z;G?_x>RIZe3?3c>_8YAi51DYAUWPZ)9lM3Ueb?|NnGciW0=FlRIotAKDApeat)LL( zI9@Zr($wGE>dSk<-a|qyy`j7lweki{E1c=gtTC7GVVHGbB$g_E#JXoZ;>RKCxv$~n zB61@^^-;6M>$$DZJ*>3|j0G!5R(MTcvg59 z{z$3+_lW2Cn3!o0EZcYEt6$DF`&B(-)IR+m)ZZmDptD#h#RMDd^yCy`oAv?fF#Nr# zfiNa5W>g{hUp001!SFTR`au9a%_8?w?=GhA2DRAWdnmuGo?bS)qjLm40hLTH4rJtn zV~k{`wODaJY_vE?UhXz(v+CT4Ug1qAP&Q3P{9z&36-qE2Q&sb_qWBF*huaRA$SIp& zsJDA`j(VB*$0=yC@0HJDlc%UMAU9oH(ua%5BP<<0RdMdJ6O9=_8-chA2h2bK7Kc!p zUl@DX@4#?{2s5!Cl8I(B^i5(d2%r*JZdK7{1HJwz#uqG6D_NH`5H$+%3hiV3)~?x- zr7;uYo>!K+tpPPRn4L+-tVlwQC@S3=hnAuy%ys%ZUoUm6yx=K%Hbz6dUnyebt%Wq5 zgOsL$3kJ|R6pKr((?g~r_IiGfdaB}j?OG!~ z4C+tvmFy-vrG}k}?mK#WcSs9k=QUV3>h!n=MSgGz7Oh~A^iv=Oq(!e_e^`w*ga4n%qN1R}LSbp};qbcgghW@e_6@1w;X|`wK zHpb_=zgY7%NtcN{@%qwlF4~fA15j zexQU-{Hj8dpjH=(`6e_Sc69z)g(K&YxQmhNdxoz?NV*kDtIBzc6daP!=?Hq0u~9u^ zt(qA)%XqAEkvMTAe|v*{{jJ3;o;@sM8zG3Kz=vie#0NCOslS0rj@xDI0rO!-r;6&% zi)j=Z>mS{^z2X$gP>|6s>8`Om*MxY+Sm{Yvo%ps=NRyArcUziixH`Pfej z&5_^c2MXL~F;r_@3~L6-SxWj&@e}0ks!Y%PW!3pv)tROpIa8q+WxjKjoa8chR*A5_ zie8k*YK${nKJoTZUr!Cu664I>g^`DBD;T^T&n7yZ3>o0atp zrAM-jpIYUNFi@SHO4BsG{?1H;7+tB*v7=N9KF!FnW1E0?Z|8x9+&-5=inX2*tX!+0 z#))L^-cTWSDTWzNV96rFRCqOkcWX~2MC`<`8j$~BaHO^2a0&?@CCFo09*u)p!$&3( zy;Wh=vklk(`l<&DFwj*6?|e%9>~U{LO6U?C`h=wjXP3cpFpf}%7g2B-k;cOn^EofX zLY%y3ANeBwx!_s#l9M5$I9S?Cdnp1kf9>^DIo?=0{R>~v;rGC0RJR4B6Qx&1$uGtW zO>8Q)?fd$gsP>kn>aRAqhtg&`EW#gu!vBM4rMQFf^H! z%f!Tz-edCbWCdY$R(9nKtm2pabya)|n|fMxg(`DS6YnTb=d7?UA@h0`8xbwnq`aCC z6+s+HL*os0%KogYpmZ7MP2<99X#4i!A-~3wzE{JcZ3M(bB>PYP@(QL&vqr=&YfZ%% zIqLpXYp$+)MDpoEokU>=sM69*hFXaeG=!h;}?@?Ma=Fc&Q!3;BqY$Ecv z;payVs?D@7FM1H`A49$AJwa$hfuy02n&p_K`-(oFJK`@Gn_y0VpP0d$kPJ)Kdi`D5 zI+7%1usUD@qbXuY;_}>%5wM2H_-TR7!T51xax8h#9Esm8-()j}Yox-$7qlU^0@X!% z1dS)ZtN2Oy&a#JF#ze6ors;mzCGT!xh_b(-0qC`}5U_`3Am=C0mP*`Frl5oc2_dul zUqnj^~vtaz!!#KoIWTP&qLW(e!9I`&t_da6-%C8c>r4-}}uIiA0sqjnQxbAWqROjdv& zM;&73ej)`e@doDKORbqEz_+5uX+CWciDiVXZJlVT1$Ty=4X;*~g4*_q~4j+thF%@r#uODnp0e1A*S7elA0x4*zwM6u>X?WE>u zRDiTCh@@wJUFY>Pt=?mOW)@v?3l9v{z^-!0M%~w1qb}eL!yupiMgK98Gct^;-D2Rt z;E#0KZq4}iiymt0!D9aOrZPWSPVz&0SF%W+6{(xxuW$V-n@9A#Tp#&lT<2mC1JRA- zPTDhV4dQ%;Kpie->ln74XXYIbl;xrNj)FunsCyLo^#=M@Sk~UiDU!#|>}!s;c|zt} zr?^kTuysY%x2Y|9j@ZZruNMu+x<}Wiuzu^<7Bu`E5Ym{J&h=uKRp2)`W)_r z*ZX)Pw&a4YkXq54;vKe7?v?eGbpi7ZfSJn#2AeufuaK%QL#r2gQovA ztlnh2aDDY_Q|bz=AJP7y4e;G?kLi(;lsOnh35XvkD$Ci?K5*SJF0A+ZV=iMW84+!o zzCL%$Ik1V1SE_7gCVa~Pe8m9w`KdL(&?EU&Y2kqjw(A3uLU6Ca|2Y1&xu`N`C5uFI zu;EL%$K2en$=%oW2Nfh9H4`a+C;^&@qlB{WZ2Ge1cfdZ|KW#in*El#Q1WIM%$YPEa zDkh7f-VMsj{uwb{4ul9nax8S_YBVf2z63h9;L@Wx5X$3-1m~yW9stSu5T&5Zz%O7b zBQ8DHhfTZf;E*U9_Y41~7+cYDi>Li2rA&dl5o)KiIRSXddToH*9v(;0x$`)Zw zPYgWs%tdxMF=j+DPgM-I{>$=A?aW%V8oF{mSuyqbbSUIxvtse7@j0YtFAYjw4N=uS zxDuFX&3oE)!a5sSh9bk!F?ROJbm4KC%`&2>k;Sq9{t7ahA5 zkFNE97~3e6kT7jJH~uE(B}StTq=`C0;t+A?Q@`s-u(R-vv&KXJdy7o8%{PFIc!0_x z?%{z^bL(a%Axq_qId!ts^Bdw^0^A9F3D%e`9PTN|KNnvieZ8CML}J14#V|F@J1uVo zgEqrD!*-FGl<)VLF$xF$LK3`}tuTf_q!teCLBPXa-yr3KBDclt!D6H$ob}3eag7+) z6`(h}!JlVK_BXFwBmjOe3qkd+El6qXx{$mETNu}0apC6yRY_j3y(Q^LIJkbU_J8jxriu7>?lY*QoaI>Bg$EP{Ojoa zh{Ok>hlDJVZRd(Qk+zNreFcHstPzxXF||h>L~TN&#be4}NiTT7A7XUCo&%ZZMy=qEw_)1pw>h%Yiw}rF$ zih|<4R{9W=#4UN;skIEowx{-OS){f^p+6eodKG`1U6T6~MUjb&Z`u<=&~OjN)D!dW z&g&UW!+xa0w3d46r=BfD0joF=i=-7YJG%e`T8JKlS?)P7+>_l>11&0&q?^E}I`0n1 zGcS~518Jdi`+Id`zIeIu{(-1xx{CGrQcZw*RMF-iwR5^h?GF?Nw=Y|(jua!@8+wyq zxuSj6RW$=1)m)W~ipIoa>s0g3SM{Tk zo8>r-s+?oWbsTXm6*}F?Gv+BxL-4zdXdp_zBWzJ`mkCs@^*Mt zH9^TB?Q(in@z>@bAuL|-&nQym^7=yAYD6%6K73V%5&Mch=tn-7GR(g9Y_P zXo(X4iK%e^FNq0UB$G)_QB!$CZWJOJt%zjZb#P<>QTms>zRhI%=QxXgkQX}CCfI}7XcgXDqg-&jDPClvtO{2CY32k@sder15OHQ{1=mr_bNnE>-jyx8GE}m`blb3eppUPhfHOc2-Y0!3Yi@0C~Zw> zNo*#b?>{t5H0mD<3~V+xXo0Jtz?g6E+YZ-G-2pS4lwNXm@I+0uQ0M=ees#(DIuDd^ ztNgH4;(2#=jDplwFHG{1xxuTp_zx72O@MuFffP&@``>1KnzRwGzpZQ&1ktjMWrZ{Kt2fA^wd8`?XSNB&La1DKzVyD z;D`E@0tEn|;q-QVb~cPoTNK%p>+a=C8TuD~`$O1obwbVta}_R&0+vTIM*XD{xIgL+ ztr!#m#m~;9ep1#i=+)dx7D&wVSpK81eV&QU&9EY{$WAld-yxn+T`!Mu7`vKN#S-v& zs@5sjd&jU76|_F{4s%Q2qQ`k++|ZbNP0%w8a}p<~C;WHPnu#>WCH7lmdaP{5aIdzn zqvi3cIAh+EIbySuGSO$Y{mZ=gc;PM-qKi^z=fszQHim5Po%4vjkGP=@qVp#;9$YdE z<*C`7b5r&hkR#hWmZ=zhg1g*vHkxj__BFop^05K_2(Ey@2zsd}o_?@cnhmsURtvn2 zU!O{SG+6tvHpdsn@c9%l-K2V-74j-e_hfxZX4v{B7}wmkU*TxO<@3Xj%%3)uNthje zs>keYCcz%nobbD#r1oA7%l%B-Kfp$+om|lJ5y=MZEio>x!u&yb(tP;s`L)r#=8qyx ztF9jxixE@r&rM9(>uRCi@daZY^G`b!VIRB8POY`4pPYuGi@}l^54o;Qd&wW&ywUik zA40hTGOax6j3Eu-s39|VJP+cyAOuLUfvsMpUB$KjYpYCe?LEH;iBIMu(j5nu;Qe!T zEp87aC?BQMU%2|gPa^%x2BuxfwGX@_5AD8&?aHa+I2DnWuN#qlXO$V^`=))u!mu%y zeig3dV{Fb5cw-5FwgHnkk=+iRZdGd6yQAXO)+QDuV_t5W*=C%UE#St&A+sEe+cp9O zYrl#hLz^6nya}o#TMNX{=6tizaKWarz2{X!TQZ~tU=Z&#rhwlPrN|9H^0|7agf|%* z#3^&TIs{VyaI}LLo4L%6BT)scsJoS{d3dugjv0DvV=4a+$qw6Cm!*bdW6#rW@H_`Z zhAD)R877=B!WySN<+bw_P@PVQk4SpDe9ghozCZNqI}M7PTJ?$`k?qq-C-GEqXP$yD z01Lb>Lz%TMW~gaX{Ch)#o>s!aCjWIiHXqun56d6C*#iwruicVrP+{ECaL%x;;@`oJXOAb zzR*l@(PoNV&*~S+VnYk_V^(ItL;1ai+R~!H1#ukp4AjSDy3gxb@*2$xhjex3d>u`t zPaHUyjnT|%EN*@Ni5$j#I1#tZnqGz~U7Ekvp4 z(|1L}=BB_eVYBzTYcs-VIL^o2r|qG^o=Jo%(fmxyic}{qg9jG=c|}1{yKO-+M=YU< z-Nf_SMVSSXFs}JaSem-R3Mf(*VWT_bnC`qane?d`k_oRu1(3e^MtrZNSsuL48L;pAC;|&iH(;3OTxb zeFSG5S=9j=Yo)e4h47*gWE0KdJhqwu>?96XML;&+5f_}gVgsa#oV{eEn9MDR>?ALe#aaQ{Pj{(aVK z#dZ{8)E2(6c73t|glL1kA3q2W-i$BJOjh~BLCblhLWu+FFHXU6sKq9Ub8oNnhrX8N zmZ~6`y$3uOh2!dGZ*v2MT?M}(>`%~HY>;yRlh%vS&K%P*Hk=ozu>r0b?pF-`QL0s? zmna)x&z!w!OSzq}h=)P`NL4ehm!8x;Zef%0W1%B8opuG_q+=eU$;q7b$vQZJy@IWD z>z|>>bqA20=9UlTiX!9FE~XNNeT)U55Xa*P?Bn@lD=mU&%h}p%@Okrq5**L=(CdMn zUn6;6otUn=B6pB`(o{tsI`3x7jrEVG$`V#hgz{A^RKukvoMKk-^?#O_o#A0IGrb2BbVCG;#E{boFgv@UgAQO;Mgkzq})sT z{2%YZu?=z*Dv)UkRWm8$xUc2nMT}!KpZK_Mv4qT`M15djGOLg;qqC}f5Vzp}>5B)l z^%yEC;0O9?1d@rS6J=q4$jwp+2Cz+#Dm5CV_E~|$-~?IJpNd$0Z~Qcc4FNyjx~Krz z(XLZzTvXu1-mri4JLa9nLJr-G6I_-FtvK!(!?yAL0uT&WVhIgkK$ohzUVtddlRCi06 zeUceY^k}z0G-I`o(eZT&fUSpC-k&;?RoU0ADyx9S76E=K3;=^$+Zd(%Ejl>rNR^oa z#n=A^NH(sz?`KTLnFc4G*0f%*UsY0k!8(@XfvQkTDf7x7y%S{};j@tk>YTbsVulDa zSvVC*H6Wa@(YF{yJ@BeQqA2Eaz&d*ur{17a%kIJtGIfhkkyt*zxXX}W&{XD#$KS&~ z6IfFa)LWDKKE0H&^>=r-FuoKHiKM5jw69)zeInaVWKf;p5>NVAKuFy1uRT$Fn71m9 zX@JL%!2;49LG}={+s$bAL`t;HS8!#+a@w7yti}rJ8I-^e60+rO6Z$3>X|U7k=vx0g z%`o*leWG`9g0;F(TNvT?xYQNIZOQ7X(0<^PN00xUBCSn@`HgA{Z$wgOM&kAiyH{+5 z?JkCwoQ5%WuK41z5eiES8Jc~ZU;OdiHxXH#Pb_EolLK*dV`%Hg+uaX&H1@NpG~M@8 zOOZqY##Q!{xOonE#`u4-BFKvh!$5CI3Ib_W@iCM4xW&wzKa!nQ;mm@y=m+wj@MSD7Lz~FVbQwUTFj0V^bwgiJ&j|{LAwj?TRGCi+a=6nKq z9VP@=9yzNGaIAfX3sCmmCKKS&89}nP9s!`Pg5?Y6f~Y@jp@2aIS$o=L+jY1eJY4fI zh3NPS-im8zzsQm;ZP`%pTpOS>oNrDx%e-u>+uq2s8v>fc{<8s=+aq zU?+=zn5Wz1Qa}N3c#ySGbHAKN<*})r;MKz?;#QsUz6gcG@vYPEFbRi#|+?NAxRF;c%Xnwb6?PgZ+yd@-FCX86Az`Q3lx;Ft9UMKh!Z%>cV3~}8@IWD zP*EcZH4%VaxM<2(zsawBUuy?`1gbjb3dSkTmrP0;DcWaV1Hfz|25_MhM;QE~IJ5Np zIe?4JkA>T><|a&|m*&FBACik5cl3<aM~cIPjh*^aX$X8w~nZ!q|zaW5k6texz*m(H%Kpn z_Nk;pB&RaqQrOw;;jV3IE`$*9D;pfxT+`!S-cAD@qwT;mjG45BO5O9+2J+{daV8W5 z=ajZ6A$`9_IC(D|Iz>4)OLCm`) zBEH!Sje;WI01go1a*vK$;JWl|h9*5ry{JBA1mo}FINLvZHnhc_aph0lUSFObIPg42b*H0~qyXuFgd-#SwJ+>rKI z;}rGl1Lidj=tsMvqh3sURdgu8%GaHX!U)~69CE9fZiW24ui}tI5x=B~1Kw9NCp9&Z zkXNYFu|y}!R5V7sZ^AR?f*iPK!-&Cd;y#+bj(ju)Tf^1dx>mPfW;CktB29;AUv^~u51tR@?f<` z+zoiQF}u+q?K4dm9n;}zVxz|8!s@7uxt$R5yUZbnKEQcD(xjC`;XcbnRL=&yvds9j z&)a>(iHx(m5{;yRKooPXV+Y0$=z`(k7P<%E&50~aCD}w0K@O5P z>|ysLBg$+54c&}(McW;WzJR_?dQC1a=r+-BGcE5QleZnP zQ-97V=EVV5S|P@`90MNr(Ool&4XbLMwIfXjW97SeVvTS>?c$ypl-=LZ#Bi6NpIZA@ zcLAN#JX5PVBgHvDdu0MtfJJ!AoRb4T^L&

|E5>X1jnR@s7; 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 literal 0 HcmV?d00001 diff --git a/assets/img/preview-480.webp b/assets/img/preview-480.webp new file mode 100644 index 0000000000000000000000000000000000000000..77caa5881cd9d685fda94df75b4af31cbaf6c428 GIT binary patch literal 11400 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 Z!XNGWALshd-518zZ(A;YyzQ+3{2R}c1VR7+ literal 0 HcmV?d00001 diff --git a/assets/img/projects/cyclotron/fig1-480.webp b/assets/img/projects/cyclotron/fig1-480.webp new file mode 100644 index 0000000000000000000000000000000000000000..295fa287eb4f7a59429f55fb2825e3867c5e307c GIT binary patch literal 28096 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

O(hyPF2k(F=(f{AviuIB4r^B=9f#Zw}vum-s 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

+hWRuuH6=+1E+6WgUrWWk|4w( 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 literal 0 HcmV?d00001 diff --git a/assets/img/projects/cyclotron/fig2-480.webp b/assets/img/projects/cyclotron/fig2-480.webp new file mode 100644 index 0000000000000000000000000000000000000000..bd02317e39cc2ea2cccf394a55e23947f89ab641 GIT binary patch literal 65450 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 Xcl}?-_1`l#46UB0X*fO4#{m8pKRzuq literal 0 HcmV?d00001 diff --git a/assets/img/projects/cyclotron/fig2-800.webp b/assets/img/projects/cyclotron/fig2-800.webp new file mode 100644 index 0000000000000000000000000000000000000000..41555636d48c9d3b1695213cccbf6dead6e6c2e6 GIT binary patch literal 106864 zcmV(sK<&R$Nk&F!p#cC_MM6+kP&il$000080000V0|1Nx09H^qAOI}^0FZnFodGH! z1C0SbF%*bGq9Gv_3*O`)0|d0UcTRn8)%B6{BgMqVsJ~+J9_)Pwv--#O&+h+@e(t;n z`ycn;*MIIm^*v+!L*$>M|7!m+{m1)9{vY)J82`$CUU~}kZ{)w!eoy}Oe2e^R>!;ek zvj33(H~qK&zx!{y|Ga;f{|ozP{$J6*&Oc)R4gKr(bNe6d2iPy-U&sHe|7QOs{wMn% z|8Mo5Sidd)d;FLCkNtn-{Ao1b@So{F$^WANQT^xt$IvgQ-zWap{lEN&`akWzx4%K3 z5&nn#KkY~OZ~mVpexd!J{LlE$+OP1R{l5TzkpDdX{r%_s*ZM#0|Nei{eb4^G{paTo zqet7n)_=|aHU4wulY~8TRm$C&{F(d>(avz=+aouEOr%KZn`AZuBBkPoGn&4Oe|oIY1v+^bCuP zYJCbH)GP0J4)3F^Qmp0XDN~^oBA{6Nikcgd`PNTJHHb?tv@|QeJ02rxs?spyXu^=68^27gYqd%&QhT&IA-AiHbu6NF116q#F2ztxYf&VreDB|!~2c_)vV@~7MnSq5l z*5zGM7yU+B0sD+b6kEVSX$hut87KW&{@QLTbksd8A?o6(p020~+k|PAo4xtEGc;lp%lJcN&OnkyoSU9rjfg1+t*nM>y8|Iy_A%@Lc$mf#=#>8by2NY6wX+WxG@o+ z-9@R-c}O0t4>9ignB;HPTMbh*QDI0oBFyn_(j?U6Ha62WYUriK0X4!etepiQ?i)PM zHBi@bAN9-$bjMLKxVQiQ*5{BYjj5}z`>_N-LXre$G$^})9Btl}JgrX=TQ3a?2|_tH zxc4SzJ%)Wm#g6S01f$NdA!Fb#4*J4W|BgQ=HcLo4B9y@8KxQwyamYhSlfJuv*P(f& zz>lvDEeyGuCs)Bh(zA77GR#cIqjOOkHwZS|xC-%+Tqc0IU<+&s55ZA6w z2F2F1f(BWOB^TdX^R7K*6x|;hskks%_KvaP56Y8@C5H1=_G$9J6fqZ)F$~?~#}&+z z8&W(n==z#aYyyB&h|i)-{*aRNOMDjE4`-PrUF5_U0+TXYAzz~!E)YhxrnjD){DJ>k z#`8hvkx?`y1aX5WHLRQvZ)|lI-kh4vA~Ye{W9_dYkH7c{qOZCfBw{q#^tgZ6eBrZ!%pMvhWhg;;6J$hfDC25h# z_oOoG7o9ffGJb10fq~Sps;@H2<8LvR0SY*ae?1SnJv z#nG6@Q2|u5dTrX8iSPOv!!f#IS5k21wxvXztEWSRqhI_97i?3zt zT1neeeDlzvTb@aCf3<=ak%w6Ihtn4lG^4ctWskP!py=DKK`)MbMz9K!e#cQ$1m&WN z2Q++vb8ZNuVF~(XE*d2#pZP!&Y)8oo$FVfJZ#*roKt2pgV`n||`pnMe`JoM)=LQ4P zrR6?D4o_CHPU_ZL+eZZ0r(VN>pheNEhX9`@3xV8LnnEMxSs*lgZ3)w8;e4$xh8HzG zv*n1PVo8;mySq62Gq3KCsVukG^@JPvSEqiXuOmavT%&3u(O$NTl-FjtX%Igt8dr1z zVK1Fb4H6jYGcF4#=Nj}3+GA;(_U7FFe?Hr`M_I?ahuUfrWect4U$J*e5;hlY-80H! zw{l)YNuM*G5C#p(aWP#r$G~Q>F`X#)GL0di5OQtE4HW}@5%V;x1};ikRGJ9gO^L;w zs|!;$(!~mY-fkkz?ch~}DIJ@U6_XUsn?>rpKhS2#g`74kS*eA`|K~D0=-A7?(ku

(mBNw;yldk&N`x8t_FX5rL-P_(SeMEV z#SkZj2U_2u(Mc=o#(%r;#YDidg@yr9^6N{5xa;{5j0D)WWeZu1ZrStaT``-9kEYn< zOWyz%2g!0PmEDe^{`Ar`)eVfsXM4|)BP_F?D&*?f`Xax>>8Wtj!r7OM`L-0-4YZaN zKx4hBXr3yL>vfS((BPLEC0elw!Y1`2Fel-=W1 zFNxZz#`erNBF&2&bagksT3Vbwa}GL4ih)v*pDMz&DE~RCPteNXl|vEfu|Sa2GYYxe zt1*8L3d~wcJ}9h>Zbown)Y8PR(xk>*@DH4!jyI6psM!;KKxG|bu9d%_MDj!#X_#1>RFz-%s*bc{^#|tF>T?RK4`#{|eV0#rd3l(vV_?CJ*iak4ElgIgAm@ z5_ONO{jaLQ6bXZPSIK_Pro~AVi%ucGpW9FY>G26?l#MUl@4-(HQoVJ3XWWGD0f6vL ze9tm`b!}9e8fiJ?o;tPs)P#u+r$KHM6H|1QB#j;_cn~8Vxq-PIFaCkfD3r;zyk>L` za5+W$+3&w2`qN~9x<0~-Cb5e-Trl*Cst1bs7GJ9b{@u!t=kcj2SZ_d71DK6$&Y8RN z^t$blOKO}YO)>L?h2It@F7@>P$5M0WyCe>n@==Xqr1Ca8l}8J0%L%KF?%DQ zVi?VyU_nKH^M9-@KUkxlVo2GAA`mg?e4v%SHF%$c8Ds`ETUahw>xLU{oga){#G94X zjpK+bTGcJmofrflEI#LTBW+C$r(^2qWOa}lo!0hu_)S}GU^C8>t?9bhYk6qb@@)Ja zy@HJVi{gL~bA_2lM`ZU}9uFcz7mi@T8smBc!?rsZV;;_%#gzT&EfHN#neYo%v%*@C z^ff@XyZPI{{_J8S#GAtk%+_)W@%HGNr=eDA%>n5=3*QG>Yb- z#HO_+qZm3#Vb9UV+i)tT!LUEm+34`eA^+IK|*D^dFj)Xb9_VQ%zbfI`xf*8AtfWNRadIr`PF?un9NYKhLzs3zEnIKP9q+=zQ z80YL`R|_)$URqs3nIAb3a?8uv>EgBMUheV;&SpEzlGcYp#b&7W^@%e#OC@1T(BJw8 zzHrCe^BJM@IKKgRbse-yV&VwH#E^B@1w$9q;_^oqYhfs_$obLmB}sXoUTf*T?T=!~ z?YF$fZA팻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 RyJN!;yAogPb{|4q=3GM&@ literal 0 HcmV?d00001 diff --git a/assets/img/projects/cyclotron/fig3-1400.webp b/assets/img/projects/cyclotron/fig3-1400.webp new file mode 100644 index 0000000000000000000000000000000000000000..65b7822ee3e7d03a5786be6707f594115b865e78 GIT binary patch literal 76912 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 {OdRj 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 bn%=bLZ}@_6wf|O7000_ChEEIt00000Xfvw= literal 0 HcmV?d00001 diff --git a/assets/img/projects/cyclotron/fig3-800.webp b/assets/img/projects/cyclotron/fig3-800.webp new file mode 100644 index 0000000000000000000000000000000000000000..c8e64dc27462dfd86d9a60d52106256666a200f4 GIT binary patch literal 56816 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 F007r5g_i&T literal 0 HcmV?d00001 diff --git a/assets/img/projects/cyclotron/fig4-1400.webp b/assets/img/projects/cyclotron/fig4-1400.webp new file mode 100644 index 0000000000000000000000000000000000000000..b2b48bf0f40f883ca6f89c5aef545b7283ccd81b GIT binary patch literal 29068 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⩔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%0Do*DtN(RVA&gf3jU9Pegk9GVM<6-Xhh(+CY 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 literal 0 HcmV?d00001 diff --git a/assets/img/projects/cyclotron/fig4-800.webp b/assets/img/projects/cyclotron/fig4-800.webp new file mode 100644 index 0000000000000000000000000000000000000000..4b490ee80ad8556bc8783d7754a9296ebf94d841 GIT binary patch literal 20966 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 WcEcALf$XWk0Cv_%R~V!K0001j0Lrca literal 0 HcmV?d00001 diff --git a/assets/img/projects/cyclotron/fig5-480.webp b/assets/img/projects/cyclotron/fig5-480.webp new file mode 100644 index 0000000000000000000000000000000000000000..acd84b64f14260d6d3b403aad5e03c149fa2cf56 GIT binary patch literal 9236 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 literal 0 HcmV?d00001 diff --git a/assets/img/projects/cyclotron/fig5-800.webp b/assets/img/projects/cyclotron/fig5-800.webp new file mode 100644 index 0000000000000000000000000000000000000000..4a3b416229d8cb3471795241313d7bd8b4a7e176 GIT binary patch literal 14388 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 PXf4BytoOzT@bCIRi1q~l literal 0 HcmV?d00001 diff --git a/assets/img/projects/cyclotron/graph1-1400.webp b/assets/img/projects/cyclotron/graph1-1400.webp new file mode 100644 index 0000000000000000000000000000000000000000..5814437d99de1259b9d6016f83044f8a088e8c26 GIT binary patch literal 23726 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 literal 0 HcmV?d00001 diff --git a/assets/img/projects/cyclotron/graph1-800.webp b/assets/img/projects/cyclotron/graph1-800.webp new file mode 100644 index 0000000000000000000000000000000000000000..e8421c9091fe37fe1a14959d25aa4f29c5c1d3e6 GIT binary patch literal 18964 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 Q=t7PVu!SkQ0b~FG0E!6a;s5{u literal 0 HcmV?d00001 diff --git a/assets/img/projects/cyclotron/graph2-1400.webp b/assets/img/projects/cyclotron/graph2-1400.webp new file mode 100644 index 0000000000000000000000000000000000000000..2b01983243cbd268d9573fe0ade33304d8940137 GIT binary patch literal 17226 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≪ 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 gSNPx# literal 0 HcmV?d00001 diff --git a/assets/img/rohandebsarkar-1400.webp b/assets/img/rohandebsarkar-1400.webp new file mode 100644 index 0000000000000000000000000000000000000000..5529f32e86612f7285b760a4d465c20a29a0afce GIT binary patch literal 22846 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%0Ak!e|`LtFRhGlhk;_8Q1Ox;p?5x-ap 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

Ic>|1ND3Ywx0856JstNOm5lqv)K6Lsc5PD{ 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 O++Qu)?_WdpKlopmGZmWv literal 0 HcmV?d00001 diff --git a/assets/img/rohandebsarkar-800.webp b/assets/img/rohandebsarkar-800.webp new file mode 100644 index 0000000000000000000000000000000000000000..4a1758c050864b4f24fdbf7a7095229958d951bc GIT binary patch literal 19002 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 I000000NFsqO8@`> literal 0 HcmV?d00001 diff --git a/assets/js/common.js b/assets/js/common.js index c7b5e3bdfaa4..8b66cc207556 100644 --- a/assets/js/common.js +++ b/assets/js/common.js @@ -1,17 +1 @@ -window.addEventListener("DOMContentLoaded", function() { - document.querySelectorAll('a.abstract').forEach(item => item.addEventListener("click", function() { - this.parent.parent.querySelectorAll(".abstract.hidden").forEach(item => item.classList.toggle('open')); - })); - document.querySelectorAll('a.bibtex').forEach(item => item.addEventListener("click", function() { - this.parent.parent.querySelectorAll(".bibtex.hidden").forEach(item => item.classList.toggle('open')); - })); - - document.getElementById("bs-navbar-toggler").onclick = function() { - this.classList.toggle('collapsed'); - document.getElementById("navbarNav").classList.toggle('show'); - if (this.getAttribute("aria-expanded") === 'false') - this.setAttribute("aria-expanded", 'true'); - else - this.setAttribute("aria-expanded", 'false'); - }; -}); +window.addEventListener("DOMContentLoaded",function(){document.querySelectorAll("a.abstract").forEach(e=>e.addEventListener("click",function(){this.parent.parent.querySelectorAll(".abstract.hidden").forEach(e=>e.classList.toggle("open"))})),document.querySelectorAll("a.bibtex").forEach(e=>e.addEventListener("click",function(){this.parent.parent.querySelectorAll(".bibtex.hidden").forEach(e=>e.classList.toggle("open"))})),document.getElementById("bs-navbar-toggler").onclick=function(){this.classList.toggle("collapsed"),document.getElementById("navbarNav").classList.toggle("show"),"false"===this.getAttribute("aria-expanded")?this.setAttribute("aria-expanded","true"):this.setAttribute("aria-expanded","false")}}); \ No newline at end of file diff --git a/assets/js/dark_mode.js b/assets/js/dark_mode.js index 863b273fe725..26312e44b528 100644 --- a/assets/js/dark_mode.js +++ b/assets/js/dark_mode.js @@ -1,8 +1 @@ -document.addEventListener('DOMContentLoaded', function() { - const mode_toggle = document.getElementById("light-toggle"); - - mode_toggle.addEventListener("click", function() { - toggleTheme(localStorage.getItem("theme")); - }); -}); - +document.addEventListener("DOMContentLoaded",function(){document.getElementById("light-toggle").addEventListener("click",function(){toggleTheme(localStorage.getItem("theme"))})}); \ No newline at end of file diff --git a/assets/js/distillpub/overrides.js b/assets/js/distillpub/overrides.js index fe3e18f0a653..f3ba87682697 100644 --- a/assets/js/distillpub/overrides.js +++ b/assets/js/distillpub/overrides.js @@ -1,24 +1 @@ -document.addEventListener("DOMContentLoaded", function() { - // Override styles of the footnotes. - document.querySelectorAll("d-footnote").forEach(function(footnote) { - footnote.shadowRoot.querySelector("sup > span") - .setAttribute("style", "color: var(--global-theme-color);"); - footnote.shadowRoot.querySelector("d-hover-box").shadowRoot.querySelector("style").sheet - .insertRule(".panel {background-color: var(--global-bg-color) !important;}"); - footnote.shadowRoot.querySelector("d-hover-box").shadowRoot.querySelector("style").sheet - .insertRule(".panel {border-color: var(--global-divider-color) !important;}"); - }); - // Override styles of the citations. - document.querySelectorAll("d-cite").forEach(function(cite) { - cite.shadowRoot.querySelector("div > span") - .setAttribute("style", "color: var(--global-theme-color);"); - cite.shadowRoot.querySelector("style").sheet - .insertRule("ul li a {color: var(--global-text-color) !important; text-decoration: none;}"); - cite.shadowRoot.querySelector("style").sheet - .insertRule("ul li a:hover {color: var(--global-theme-color) !important;}"); - cite.shadowRoot.querySelector("d-hover-box").shadowRoot.querySelector("style").sheet - .insertRule(".panel {background-color: var(--global-bg-color) !important;}"); - cite.shadowRoot.querySelector("d-hover-box").shadowRoot.querySelector("style").sheet - .insertRule(".panel {border-color: var(--global-divider-color) !important;}"); - }); -}); \ No newline at end of file +document.addEventListener("DOMContentLoaded",function(){document.querySelectorAll("d-footnote").forEach(function(o){o.shadowRoot.querySelector("sup > span").setAttribute("style","color: var(--global-theme-color);"),o.shadowRoot.querySelector("d-hover-box").shadowRoot.querySelector("style").sheet.insertRule(".panel {background-color: var(--global-bg-color) !important;}"),o.shadowRoot.querySelector("d-hover-box").shadowRoot.querySelector("style").sheet.insertRule(".panel {border-color: var(--global-divider-color) !important;}")}),document.querySelectorAll("d-cite").forEach(function(o){o.shadowRoot.querySelector("div > span").setAttribute("style","color: var(--global-theme-color);"),o.shadowRoot.querySelector("style").sheet.insertRule("ul li a {color: var(--global-text-color) !important; text-decoration: none;}"),o.shadowRoot.querySelector("style").sheet.insertRule("ul li a:hover {color: var(--global-theme-color) !important;}"),o.shadowRoot.querySelector("d-hover-box").shadowRoot.querySelector("style").sheet.insertRule(".panel {background-color: var(--global-bg-color) !important;}"),o.shadowRoot.querySelector("d-hover-box").shadowRoot.querySelector("style").sheet.insertRule(".panel {border-color: var(--global-divider-color) !important;}")})}); \ No newline at end of file diff --git a/assets/js/distillpub/template.v2.js b/assets/js/distillpub/template.v2.js index 4ddc61fcff64..a05e82bb621d 100644 --- a/assets/js/distillpub/template.v2.js +++ b/assets/js/distillpub/template.v2.js @@ -1,9247 +1,67 @@ -(function (factory) { - typeof define === 'function' && define.amd ? define(factory) : - factory(); -}((function () { 'use strict'; - - // Copyright 2018 The Distill Template Authors - // - // 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. - - const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; - const months = ['Jan.', 'Feb.', 'March', 'April', 'May', 'June', 'July', 'Aug.', 'Sept.', 'Oct.', 'Nov.', 'Dec.']; - const zeroPad = n => n < 10 ? '0' + n : n; - - const RFC = function(date) { - const day = days[date.getDay()].substring(0, 3); - const paddedDate = zeroPad(date.getDate()); - const month = months[date.getMonth()].substring(0,3); - const year = date.getFullYear().toString(); - const hours = date.getUTCHours().toString(); - const minutes = date.getUTCMinutes().toString(); - const seconds = date.getUTCSeconds().toString(); - return `${day}, ${paddedDate} ${month} ${year} ${hours}:${minutes}:${seconds} Z`; - }; - - const objectFromMap = function(map) { - const object = Array.from(map).reduce((object, [key, value]) => ( - Object.assign(object, { [key]: value }) // Be careful! Maps can have non-String keys; object literals can't. - ), {}); - return object; - }; - - const mapFromObject = function(object) { - const map = new Map(); - for (var property in object) { - if (object.hasOwnProperty(property)) { - map.set(property, object[property]); - } - } - return map; - }; - - class Author { - - // constructor(name='', personalURL='', affiliation='', affiliationURL='') { - // this.name = name; // 'Chris Olah' - // this.personalURL = personalURL; // 'https://colah.github.io' - // this.affiliation = affiliation; // 'Google Brain' - // this.affiliationURL = affiliationURL; // 'https://g.co/brain' - // } - - constructor(object) { - this.name = object.author; // 'Chris Olah' - this.personalURL = object.authorURL; // 'https://colah.github.io' - this.affiliation = object.affiliation; // 'Google Brain' - this.affiliationURL = object.affiliationURL; // 'https://g.co/brain' - this.affiliations = object.affiliations || []; // new-style affiliations - } - - // 'Chris' - get firstName() { - const names = this.name.split(' '); - return names.slice(0, names.length - 1).join(' '); - } - - // 'Olah' - get lastName() { - const names = this.name.split(' '); - return names[names.length -1]; - } - } - - function mergeFromYMLFrontmatter(target, source) { - target.title = source.title; - if (source.published) { - if (source.published instanceof Date) { - target.publishedDate = source.published; - } else if (source.published.constructor === String) { - target.publishedDate = new Date(source.published); - } - } - if (source.publishedDate) { - if (source.publishedDate instanceof Date) { - target.publishedDate = source.publishedDate; - } else if (source.publishedDate.constructor === String) { - target.publishedDate = new Date(source.publishedDate); - } else { - console.error('Don\'t know what to do with published date: ' + source.publishedDate); - } - } - target.description = source.description; - target.authors = source.authors.map( (authorObject) => new Author(authorObject)); - target.katex = source.katex; - target.password = source.password; - if (source.doi) { - target.doi = source.doi; - } - } - - class FrontMatter { - constructor() { - this.title = 'unnamed article'; // 'Attention and Augmented Recurrent Neural Networks' - this.description = ''; // 'A visual overview of neural attention...' - this.authors = []; // Array of Author(s) - - this.bibliography = new Map(); - this.bibliographyParsed = false; - // { - // 'gregor2015draw': { - // 'title': 'DRAW: A recurrent neural network for image generation', - // 'author': 'Gregor, Karol and Danihelka, Ivo and Graves, Alex and Rezende, Danilo Jimenez and Wierstra, Daan', - // 'journal': 'arXiv preprint arXiv:1502.04623', - // 'year': '2015', - // 'url': 'https://arxiv.org/pdf/1502.04623.pdf', - // 'type': 'article' - // }, - // } - - // Citation keys should be listed in the order that they are appear in the document. - // Each key refers to a key in the bibliography dictionary. - this.citations = []; // [ 'gregor2015draw', 'mercier2011humans' ] - this.citationsCollected = false; - - // - // Assigned from posts.csv - // - - // publishedDate: 2016-09-08T07:00:00.000Z, - // tags: [ 'rnn' ], - // distillPath: '2016/augmented-rnns', - // githubPath: 'distillpub/post--augmented-rnns', - // doiSuffix: 1, - - // - // Assigned from journal - // - this.journal = {}; - // journal: { - // 'title': 'Distill', - // 'full_title': 'Distill', - // 'abbrev_title': 'Distill', - // 'url': 'http://distill.pub', - // 'doi': '10.23915/distill', - // 'publisherName': 'Distill Working Group', - // 'publisherEmail': 'admin@distill.pub', - // 'issn': '2476-0757', - // 'editors': [...], - // 'committee': [...] - // } - // volume: 1, - // issue: 9, - - this.katex = {}; - - // - // Assigned from publishing process - // - - // githubCompareUpdatesUrl: 'https://github.com/distillpub/post--augmented-rnns/compare/1596e094d8943d2dc0ea445d92071129c6419c59...3bd9209e0c24d020f87cf6152dcecc6017cbc193', - // updatedDate: 2017-03-21T07:13:16.000Z, - // doi: '10.23915/distill.00001', - this.doi = undefined; - this.publishedDate = undefined; - } - - // Example: - // title: Demo Title Attention and Augmented Recurrent Neural Networks - // published: Jan 10, 2017 - // authors: - // - Chris Olah: - // - Shan Carter: http://shancarter.com - // affiliations: - // - Google Brain: - // - Google Brain: http://g.co/brain - - // - // Computed Properties - // - - // 'http://distill.pub/2016/augmented-rnns', - set url(value) { - this._url = value; - } - get url() { - if (this._url) { - return this._url; - } else if (this.distillPath && this.journal.url) { - return this.journal.url + '/' + this.distillPath; - } else if (this.journal.url) { - return this.journal.url; - } - } - - // 'https://github.com/distillpub/post--augmented-rnns', - get githubUrl() { - if (this.githubPath) { - return 'https://github.com/' + this.githubPath; - } else { - return undefined; - } - } - - // TODO resolve differences in naming of URL/Url/url. - // 'http://distill.pub/2016/augmented-rnns/thumbnail.jpg', - set previewURL(value) { - this._previewURL = value; - } - get previewURL() { - return this._previewURL ? this._previewURL : this.url + '/thumbnail.jpg'; - } - - // 'Thu, 08 Sep 2016 00:00:00 -0700', - get publishedDateRFC() { - return RFC(this.publishedDate); - } - - // 'Thu, 08 Sep 2016 00:00:00 -0700', - get updatedDateRFC() { - return RFC(this.updatedDate); - } - - // 2016, - get publishedYear() { - return this.publishedDate.getFullYear(); - } - - // 'Sept', - get publishedMonth() { - return months[this.publishedDate.getMonth()]; - } - - // 8, - get publishedDay() { - return this.publishedDate.getDate(); - } - - // '09', - get publishedMonthPadded() { - return zeroPad(this.publishedDate.getMonth() + 1); - } - - // '08', - get publishedDayPadded() { - return zeroPad(this.publishedDate.getDate()); - } - - get publishedISODateOnly() { - return this.publishedDate.toISOString().split('T')[0]; - } - - get volume() { - const volume = this.publishedYear - 2015; - if (volume < 1) { - throw new Error('Invalid publish date detected during computing volume'); - } - return volume; - } - - get issue() { - return this.publishedDate.getMonth() + 1; - } - - // 'Olah & Carter', - get concatenatedAuthors() { - if (this.authors.length > 2) { - return this.authors[0].lastName + ', et al.'; - } else if (this.authors.length === 2) { - return this.authors[0].lastName + ' & ' + this.authors[1].lastName; - } else if (this.authors.length === 1) { - return this.authors[0].lastName; - } - } - - // 'Olah, Chris and Carter, Shan', - get bibtexAuthors() { - return this.authors.map(author => { - return author.lastName + ', ' + author.firstName; - }).join(' and '); - } - - // 'olah2016attention' - get slug() { - let slug = ''; - if (this.authors.length) { - slug += this.authors[0].lastName.toLowerCase(); - slug += this.publishedYear; - slug += this.title.split(' ')[0].toLowerCase(); - } - return slug || 'Untitled'; - } - - get bibliographyEntries() { - return new Map(this.citations.map( citationKey => { - const entry = this.bibliography.get(citationKey); - return [citationKey, entry]; - })); - } - - set bibliography(bibliography) { - if (bibliography instanceof Map) { - this._bibliography = bibliography; - } else if (typeof bibliography === 'object') { - this._bibliography = mapFromObject(bibliography); - } - } - - get bibliography() { - return this._bibliography; - } - - static fromObject(source) { - const frontMatter = new FrontMatter(); - Object.assign(frontMatter, source); - return frontMatter; - } - - assignToObject(target) { - Object.assign(target, this); - target.bibliography = objectFromMap(this.bibliographyEntries); - target.url = this.url; - target.doi = this.doi; - target.githubUrl = this.githubUrl; - target.previewURL = this.previewURL; - if (this.publishedDate) { - target.volume = this.volume; - target.issue = this.issue; - target.publishedDateRFC = this.publishedDateRFC; - target.publishedYear = this.publishedYear; - target.publishedMonth = this.publishedMonth; - target.publishedDay = this.publishedDay; - target.publishedMonthPadded = this.publishedMonthPadded; - target.publishedDayPadded = this.publishedDayPadded; - } - if (this.updatedDate) { - target.updatedDateRFC = this.updatedDateRFC; - } - target.concatenatedAuthors = this.concatenatedAuthors; - target.bibtexAuthors = this.bibtexAuthors; - target.slug = this.slug; - } - - } - - // Copyright 2018 The Distill Template Authors - // - // 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. - - const Mutating = (superclass) => { - return class extends superclass { - - constructor() { - super(); - - // set up mutation observer - const options = {childList: true, characterData: true, subtree: true}; - const observer = new MutationObserver( () => { - observer.disconnect(); - this.renderIfPossible(); - observer.observe(this, options); - }); - - // ...and listen for changes - observer.observe(this, options); - } - - connectedCallback() { - super.connectedCallback(); - - this.renderIfPossible(); - } - - // potential TODO: check if this is enough for all our usecases - // maybe provide a custom function to tell if we have enough information to render - renderIfPossible() { - if (this.textContent && this.root) { - this.renderContent(); - } - } - - renderContent() { - console.error(`Your class ${this.constructor.name} must provide a custom renderContent() method!` ); - } - - }; // end class - }; // end mixin function - - // Copyright 2018 The Distill Template Authors - // - // 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. - - /*global ShadyCSS*/ - - const Template = (name, templateString, useShadow = true) => { - - return (superclass) => { - - const template = document.createElement('template'); - template.innerHTML = templateString; - - if (useShadow && 'ShadyCSS' in window) { - ShadyCSS.prepareTemplate(template, name); - } - - return class extends superclass { - - static get is() { return name; } - - constructor() { - super(); - - this.clone = document.importNode(template.content, true); - if (useShadow) { - this.attachShadow({mode: 'open'}); - this.shadowRoot.appendChild(this.clone); - } - } - - connectedCallback() { - if (this.hasAttribute('distill-prerendered')) { - return; - } - if (useShadow) { - if ('ShadyCSS' in window) { - ShadyCSS.styleElement(this); - } - } else { - this.insertBefore(this.clone, this.firstChild); - } - } - - get root() { - if (useShadow) { - return this.shadowRoot; - } else { - return this; - } - } - - /* TODO: Are we using these? Should we even? */ - $(query) { - return this.root.querySelector(query); - } - - $$(query) { - return this.root.querySelectorAll(query); - } - }; - }; - }; - - var math = "/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nspan.katex-display {\n text-align: left;\n padding: 8px 0 8px 0;\n margin: 0.5em 0 0.5em 1em;\n}\n\nspan.katex {\n -webkit-font-smoothing: antialiased;\n color: rgba(0, 0, 0, 0.8);\n font-size: 1.18em;\n}\n"; - - // Copyright 2018 The Distill Template Authors - // - // 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. - - // This is a straight concatenation of code from KaTeX's contrib folder, - // but we aren't using some of their helpers that don't work well outside a browser environment. - - /*global katex */ - - const findEndOfMath = function(delimiter, text, startIndex) { - // Adapted from - // https://github.com/Khan/perseus/blob/master/src/perseus-markdown.jsx - let index = startIndex; - let braceLevel = 0; - - const delimLength = delimiter.length; - - while (index < text.length) { - const character = text[index]; - - if ( - braceLevel <= 0 && - text.slice(index, index + delimLength) === delimiter - ) { - return index; - } else if (character === "\\") { - index++; - } else if (character === "{") { - braceLevel++; - } else if (character === "}") { - braceLevel--; - } - - index++; - } - - return -1; - }; - - const splitAtDelimiters = function(startData, leftDelim, rightDelim, display) { - const finalData = []; - - for (let i = 0; i < startData.length; i++) { - if (startData[i].type === "text") { - const text = startData[i].data; - - let lookingForLeft = true; - let currIndex = 0; - let nextIndex; - - nextIndex = text.indexOf(leftDelim); - if (nextIndex !== -1) { - currIndex = nextIndex; - finalData.push({ - type: "text", - data: text.slice(0, currIndex) - }); - lookingForLeft = false; - } - - while (true) { - // eslint-disable-line no-constant-condition - if (lookingForLeft) { - nextIndex = text.indexOf(leftDelim, currIndex); - if (nextIndex === -1) { - break; - } - - finalData.push({ - type: "text", - data: text.slice(currIndex, nextIndex) - }); - - currIndex = nextIndex; - } else { - nextIndex = findEndOfMath( - rightDelim, - text, - currIndex + leftDelim.length - ); - if (nextIndex === -1) { - break; - } - - finalData.push({ - type: "math", - data: text.slice(currIndex + leftDelim.length, nextIndex), - rawData: text.slice(currIndex, nextIndex + rightDelim.length), - display: display - }); - - currIndex = nextIndex + rightDelim.length; - } - - lookingForLeft = !lookingForLeft; - } - - finalData.push({ - type: "text", - data: text.slice(currIndex) - }); - } else { - finalData.push(startData[i]); - } - } - - return finalData; - }; - - const splitWithDelimiters = function(text, delimiters) { - let data = [{ type: "text", data: text }]; - for (let i = 0; i < delimiters.length; i++) { - const delimiter = delimiters[i]; - data = splitAtDelimiters( - data, - delimiter.left, - delimiter.right, - delimiter.display || false - ); - } - return data; - }; - - /* Note: optionsCopy is mutated by this method. If it is ever exposed in the - * API, we should copy it before mutating. - */ - const renderMathInText = function(text, optionsCopy) { - const data = splitWithDelimiters(text, optionsCopy.delimiters); - const fragment = document.createDocumentFragment(); - - for (let i = 0; i < data.length; i++) { - if (data[i].type === "text") { - fragment.appendChild(document.createTextNode(data[i].data)); - } else { - const tag = document.createElement("d-math"); - const math = data[i].data; - // Override any display mode defined in the settings with that - // defined by the text itself - optionsCopy.displayMode = data[i].display; - try { - tag.textContent = math; - if (optionsCopy.displayMode) { - tag.setAttribute("block", ""); - } - } catch (e) { - if (!(e instanceof katex.ParseError)) { - throw e; - } - optionsCopy.errorCallback( - "KaTeX auto-render: Failed to parse `" + data[i].data + "` with ", - e - ); - fragment.appendChild(document.createTextNode(data[i].rawData)); - continue; - } - fragment.appendChild(tag); - } - } - - return fragment; - }; - - const renderElem = function(elem, optionsCopy) { - for (let i = 0; i < elem.childNodes.length; i++) { - const childNode = elem.childNodes[i]; - if (childNode.nodeType === 3) { - // Text node - const text = childNode.textContent; - if (optionsCopy.mightHaveMath(text)) { - const frag = renderMathInText(text, optionsCopy); - i += frag.childNodes.length - 1; - elem.replaceChild(frag, childNode); - } - } else if (childNode.nodeType === 1) { - // Element node - const shouldRender = - optionsCopy.ignoredTags.indexOf(childNode.nodeName.toLowerCase()) === - -1; - - if (shouldRender) { - renderElem(childNode, optionsCopy); - } - } - // Otherwise, it's something else, and ignore it. - } - }; - - const defaultAutoRenderOptions = { - delimiters: [ - { left: "$$", right: "$$", display: true }, - { left: "\\[", right: "\\]", display: true }, - { left: "\\(", right: "\\)", display: false } - // LaTeX uses this, but it ruins the display of normal `$` in text: - // {left: '$', right: '$', display: false}, - ], - - ignoredTags: [ - "script", - "noscript", - "style", - "textarea", - "pre", - "code", - "svg" - ], - - errorCallback: function(msg, err) { - console.error(msg, err); - } - }; - - const renderMathInElement = function(elem, options) { - if (!elem) { - throw new Error("No element provided to render"); - } - - const optionsCopy = Object.assign({}, defaultAutoRenderOptions, options); - const delimiterStrings = optionsCopy.delimiters.flatMap(d => [ - d.left, - d.right - ]); - const mightHaveMath = text => - delimiterStrings.some(d => text.indexOf(d) !== -1); - optionsCopy.mightHaveMath = mightHaveMath; - renderElem(elem, optionsCopy); - }; - - // Copyright 2018 The Distill Template Authors - - const katexJSURL = 'https://distill.pub/third-party/katex/katex.min.js'; - const katexCSSTag = ''; - - const T = Template('d-math', ` -${katexCSSTag} - - -`); - - // DMath, not Math, because that would conflict with the JS built-in - class DMath extends Mutating(T(HTMLElement)) { - - static set katexOptions(options) { - DMath._katexOptions = options; - if (DMath.katexOptions.delimiters) { - if (!DMath.katexAdded) { - DMath.addKatex(); - } else { - DMath.katexLoadedCallback(); - } - } - } - - static get katexOptions() { - if (!DMath._katexOptions) { - DMath._katexOptions = { - delimiters: [ { 'left':'$$', 'right':'$$', 'display': false } ] - }; - } - return DMath._katexOptions; - } - - static katexLoadedCallback() { - // render all d-math tags - const mathTags = document.querySelectorAll('d-math'); - for (const mathTag of mathTags) { - mathTag.renderContent(); - } - // transform inline delimited math to d-math tags - if (DMath.katexOptions.delimiters) { - renderMathInElement(document.body, DMath.katexOptions); - } - } - - static addKatex() { - // css tag can use this convenience function - document.head.insertAdjacentHTML('beforeend', katexCSSTag); - // script tag has to be created to work properly - const scriptTag = document.createElement('script'); - scriptTag.src = katexJSURL; - scriptTag.async = true; - scriptTag.onload = DMath.katexLoadedCallback; - scriptTag.crossorigin = 'anonymous'; - document.head.appendChild(scriptTag); - - DMath.katexAdded = true; - } - - get options() { - const localOptions = { displayMode: this.hasAttribute('block') }; - return Object.assign(localOptions, DMath.katexOptions); - } - - connectedCallback() { - super.connectedCallback(); - if (!DMath.katexAdded) { - DMath.addKatex(); - } - } - - renderContent() { - if (typeof katex !== 'undefined') { - const container = this.root.querySelector('#katex-container'); - katex.render(this.textContent, container, this.options); - } - } - - } - - DMath.katexAdded = false; - DMath.inlineMathRendered = false; - window.DMath = DMath; // TODO: check if this can be removed, or if we should expose a distill global - - // Copyright 2018 The Distill Template Authors - // - // Licensed under the Apache License, Version 2.0 (the "License"); - // you may not use this file except in compliance with the License. - // You may obtain a copy of the License at - // - // http://www.apache.org/licenses/LICENSE-2.0 - // - // Unless required by applicable law or agreed to in writing, software - // distributed under the License is distributed on an "AS IS" BASIS, - // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - // See the License for the specific language governing permissions and - // limitations under the License. - - function collect_citations(dom = document) { - const citations = new Set(); - const citeTags = dom.querySelectorAll("d-cite"); - for (const tag of citeTags) { - const keyString = tag.getAttribute("key") || tag.getAttribute("bibtex-key"); - const keys = keyString.split(",").map(k => k.trim()); - for (const key of keys) { - citations.add(key); - } - } - return [...citations]; - } - - function author_string(ent, template, sep, finalSep) { - if (ent.author == null) { - return ""; - } - var names = ent.author.split(" and "); - let name_strings = names.map(name => { - name = name.trim(); - if (name.indexOf(",") != -1) { - var last = name.split(",")[0].trim(); - var firsts = name.split(",")[1]; - } else if (name.indexOf(" ") != -1) { - var last = name - .split(" ") - .slice(-1)[0] - .trim(); - var firsts = name - .split(" ") - .slice(0, -1) - .join(" "); - } else { - var last = name.trim(); - } - var initials = ""; - if (firsts != undefined) { - initials = firsts - .trim() - .split(" ") - .map(s => s.trim()[0]); - initials = initials.join(".") + "."; - } - return template - .replace("${F}", firsts) - .replace("${L}", last) - .replace("${I}", initials) - .trim(); // in case one of first or last was empty - }); - if (names.length > 1) { - var str = name_strings.slice(0, names.length - 1).join(sep); - str += (finalSep || sep) + name_strings[names.length - 1]; - return str; - } else { - return name_strings[0]; - } - } - - function venue_string(ent) { - var cite = ent.journal || ent.booktitle || ""; - if ("volume" in ent) { - var issue = ent.issue || ent.number; - issue = issue != undefined ? "(" + issue + ")" : ""; - cite += ", Vol " + ent.volume + issue; - } - if ("pages" in ent) { - cite += ", pp. " + ent.pages; - } - if (cite != "") cite += ". "; - if ("publisher" in ent) { - cite += ent.publisher; - if (cite[cite.length - 1] != ".") cite += "."; - } - return cite; - } - - function link_string(ent) { - if ("url" in ent) { - var url = ent.url; - var arxiv_match = /arxiv\.org\/abs\/([0-9\.]*)/.exec(url); - if (arxiv_match != null) { - url = `http://arxiv.org/pdf/${arxiv_match[1]}.pdf`; - } - - if (url.slice(-4) == ".pdf") { - var label = "PDF"; - } else if (url.slice(-5) == ".html") { - var label = "HTML"; - } - return `  [${label || "link"}]`; - } /* else if ("doi" in ent){ - return `  [DOI]`; - }*/ else { - return ""; - } - } - function doi_string(ent, new_line) { - if ("doi" in ent) { - return `${new_line ? "
" : ""} DOI: ${ent.doi}`; - } else { - return ""; - } - } - - function title_string(ent) { - return '' + ent.title + " "; - } - - function bibliography_cite(ent, fancy) { - if (ent) { - var cite = title_string(ent); - cite += link_string(ent) + "
"; - if (ent.author) { - cite += author_string(ent, "${L}, ${I}", ", ", " and "); - if (ent.year || ent.date) { - cite += ", "; - } - } - if (ent.year || ent.date) { - cite += (ent.year || ent.date) + ". "; - } else { - cite += ". "; - } - cite += venue_string(ent); - cite += doi_string(ent); - return cite; - /*var cite = author_string(ent, "${L}, ${I}", ", ", " and "); - if (ent.year || ent.date){ - cite += ", " + (ent.year || ent.date) + ". " - } else { - cite += ". " - } - cite += "" + ent.title + ". "; - cite += venue_string(ent); - cite += doi_string(ent); - cite += link_string(ent); - return cite*/ - } else { - return "?"; - } - } - - function hover_cite(ent) { - if (ent) { - var cite = ""; - cite += "" + ent.title + ""; - cite += link_string(ent); - cite += "
"; - - var a_str = author_string(ent, "${I} ${L}", ", ") + "."; - var v_str = - venue_string(ent).trim() + " " + ent.year + ". " + doi_string(ent, true); - - if ((a_str + v_str).length < Math.min(40, ent.title.length)) { - cite += a_str + " " + v_str; - } else { - cite += a_str + "
" + v_str; - } - return cite; - } else { - return "?"; - } - } - - function domContentLoaded() { - return ['interactive', 'complete'].indexOf(document.readyState) !== -1; - } - - // Copyright 2018 The Distill Template Authors - // - // Licensed under the Apache License, Version 2.0 (the "License"); - // you may not use this file except in compliance with the License. - // You may obtain a copy of the License at - // - // http://www.apache.org/licenses/LICENSE-2.0 - // - // Unless required by applicable law or agreed to in writing, software - // distributed under the License is distributed on an "AS IS" BASIS, - // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - // See the License for the specific language governing permissions and - // limitations under the License. - - function _moveLegacyAffiliationFormatIntoArray(frontMatter) { - // authors used to have propoerties "affiliation" and "affiliationURL". - // We now encourage using an array for affiliations containing objects with - // properties "name" and "url". - for (let author of frontMatter.authors) { - const hasOldStyle = Boolean(author.affiliation); - const hasNewStyle = Boolean(author.affiliations); - if (!hasOldStyle) continue; - if (hasNewStyle) { - console.warn(`Author ${author.author} has both old-style ("affiliation" & "affiliationURL") and new style ("affiliations") affiliation information!`); - } else { - let newAffiliation = { - "name": author.affiliation - }; - if (author.affiliationURL) newAffiliation.url = author.affiliationURL; - author.affiliations = [newAffiliation]; - } - } - return frontMatter - } - - function parseFrontmatter(element) { - const scriptTag = element.firstElementChild; - if (scriptTag) { - const type = scriptTag.getAttribute('type'); - if (type.split('/')[1] == 'json') { - const content = scriptTag.textContent; - const parsed = JSON.parse(content); - return _moveLegacyAffiliationFormatIntoArray(parsed); - } else { - console.error('Distill only supports JSON frontmatter tags anymore; no more YAML.'); - } - } else { - console.error('You added a frontmatter tag but did not provide a script tag with front matter data in it. Please take a look at our templates.'); - } - return {}; - } - - class FrontMatter$1 extends HTMLElement { - - static get is() { return 'd-front-matter'; } - - constructor() { - super(); - - const options = {childList: true, characterData: true, subtree: true}; - const observer = new MutationObserver( (entries) => { - for (const entry of entries) { - if (entry.target.nodeName === 'SCRIPT' || entry.type === 'characterData') { - const data = parseFrontmatter(this); - this.notify(data); - } - } - }); - observer.observe(this, options); - } - - notify(data) { - const options = { detail: data, bubbles: true }; - const event = new CustomEvent('onFrontMatterChanged', options); - document.dispatchEvent(event); - } - - } - - // Copyright 2018 The Distill Template Authors - // - // 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. - - // no appendix -> add appendix - // title in front, no h1 -> add it - // no title in front, h1 -> read and put into frontMatter - // footnote -> footnote list - // break up bib - // if citation, no bib-list -> add citation-list - - // if authors, no byline -> add byline - - function optionalComponents(dom, data) { - const body = dom.body; - const article = body.querySelector('d-article'); - - // If we don't have an article tag, something weird is going on—giving up. - if (!article) { - console.warn('No d-article tag found; skipping adding optional components!'); - return; - } - - let byline = dom.querySelector('d-byline'); - if (!byline) { - if (data.authors) { - byline = dom.createElement('d-byline'); - body.insertBefore(byline, article); - } else { - console.warn('No authors found in front matter; please add them before submission!'); - } - } - - let title = dom.querySelector('d-title'); - if (!title) { - title = dom.createElement('d-title'); - body.insertBefore(title, byline); - } - - let h1 = title.querySelector('h1'); - if (!h1) { - h1 = dom.createElement('h1'); - h1.textContent = data.title; - title.insertBefore(h1, title.firstChild); - } - - const hasPassword = typeof data.password !== 'undefined'; - let interstitial = body.querySelector('d-interstitial'); - if (hasPassword && !interstitial) { - const inBrowser = typeof window !== 'undefined'; - const onLocalhost = inBrowser && window.location.hostname.includes('localhost'); - if (!inBrowser || !onLocalhost) { - interstitial = dom.createElement('d-interstitial'); - interstitial.password = data.password; - body.insertBefore(interstitial, body.firstChild); - } - } else if (!hasPassword && interstitial) { - interstitial.parentElement.removeChild(this); - } - - let appendix = dom.querySelector('d-appendix'); - if (!appendix) { - appendix = dom.createElement('d-appendix'); - dom.body.appendChild(appendix); - } - - let footnoteList = dom.querySelector('d-footnote-list'); - if (!footnoteList) { - footnoteList = dom.createElement('d-footnote-list'); - appendix.appendChild(footnoteList); - } - - let citationList = dom.querySelector('d-citation-list'); - if (!citationList) { - citationList = dom.createElement('d-citation-list'); - appendix.appendChild(citationList); - } - - } - - // Copyright 2018 The Distill Template Authors - - const frontMatter = new FrontMatter(); - - const Controller = { - frontMatter: frontMatter, - waitingOn: { - bibliography: [], - citations: [] - }, - listeners: { - onCiteKeyCreated(event) { - const [citeTag, keys] = event.detail; - - // ensure we have citations - if (!frontMatter.citationsCollected) { - // console.debug('onCiteKeyCreated, but unresolved dependency ("citations"). Enqueing.'); - Controller.waitingOn.citations.push(() => - Controller.listeners.onCiteKeyCreated(event) - ); - return; - } - - // ensure we have a loaded bibliography - if (!frontMatter.bibliographyParsed) { - // console.debug('onCiteKeyCreated, but unresolved dependency ("bibliography"). Enqueing.'); - Controller.waitingOn.bibliography.push(() => - Controller.listeners.onCiteKeyCreated(event) - ); - return; - } - - const numbers = keys.map(key => frontMatter.citations.indexOf(key)); - citeTag.numbers = numbers; - const entries = keys.map(key => frontMatter.bibliography.get(key)); - citeTag.entries = entries; - }, - - onCiteKeyChanged() { - // const [citeTag, keys] = event.detail; - - // update citations - frontMatter.citations = collect_citations(); - frontMatter.citationsCollected = true; - for (const waitingCallback of Controller.waitingOn.citations.slice()) { - waitingCallback(); - } - - // update bibliography - const citationListTag = document.querySelector("d-citation-list"); - const bibliographyEntries = new Map( - frontMatter.citations.map(citationKey => { - return [citationKey, frontMatter.bibliography.get(citationKey)]; - }) - ); - citationListTag.citations = bibliographyEntries; - - const citeTags = document.querySelectorAll("d-cite"); - for (const citeTag of citeTags) { - console.log(citeTag); - const keys = citeTag.keys; - const numbers = keys.map(key => frontMatter.citations.indexOf(key)); - citeTag.numbers = numbers; - const entries = keys.map(key => frontMatter.bibliography.get(key)); - citeTag.entries = entries; - } - }, - - onCiteKeyRemoved(event) { - Controller.listeners.onCiteKeyChanged(event); - }, - - onBibliographyChanged(event) { - const citationListTag = document.querySelector("d-citation-list"); - - const bibliography = event.detail; - - frontMatter.bibliography = bibliography; - frontMatter.bibliographyParsed = true; - for (const waitingCallback of Controller.waitingOn.bibliography.slice()) { - waitingCallback(); - } - - // ensure we have citations - if (!frontMatter.citationsCollected) { - Controller.waitingOn.citations.push(function() { - Controller.listeners.onBibliographyChanged({ - target: event.target, - detail: event.detail - }); - }); - return; - } - - if (citationListTag.hasAttribute("distill-prerendered")) { - console.debug("Citation list was prerendered; not updating it."); - } else { - const entries = new Map( - frontMatter.citations.map(citationKey => { - return [citationKey, frontMatter.bibliography.get(citationKey)]; - }) - ); - citationListTag.citations = entries; - } - }, - - onFootnoteChanged() { - // const footnote = event.detail; - //TODO: optimize to only update current footnote - const footnotesList = document.querySelector("d-footnote-list"); - if (footnotesList) { - const footnotes = document.querySelectorAll("d-footnote"); - footnotesList.footnotes = footnotes; - } - }, - - onFrontMatterChanged(event) { - const data = event.detail; - mergeFromYMLFrontmatter(frontMatter, data); - - const interstitial = document.querySelector("d-interstitial"); - if (interstitial) { - if (typeof frontMatter.password !== "undefined") { - interstitial.password = frontMatter.password; - } else { - interstitial.parentElement.removeChild(interstitial); - } - } - - const prerendered = document.body.hasAttribute("distill-prerendered"); - if (!prerendered && domContentLoaded()) { - optionalComponents(document, frontMatter); - - const appendix = document.querySelector("distill-appendix"); - if (appendix) { - appendix.frontMatter = frontMatter; - } - - const byline = document.querySelector("d-byline"); - if (byline) { - byline.frontMatter = frontMatter; - } - - if (data.katex) { - DMath.katexOptions = data.katex; - } - } - }, - - DOMContentLoaded() { - if (Controller.loaded) { - console.warn( - "Controller received DOMContentLoaded but was already loaded!" - ); - return; - } else if (!domContentLoaded()) { - console.warn( - "Controller received DOMContentLoaded at document.readyState: " + - document.readyState + - "!" - ); - return; - } else { - Controller.loaded = true; - console.debug("Runlevel 4: Controller running DOMContentLoaded"); - } - - const frontMatterTag = document.querySelector("d-front-matter"); - if (frontMatterTag) { - const data = parseFrontmatter(frontMatterTag); - Controller.listeners.onFrontMatterChanged({ detail: data }); - } - - // Resolving "citations" dependency due to initial DOM load - frontMatter.citations = collect_citations(); - frontMatter.citationsCollected = true; - for (const waitingCallback of Controller.waitingOn.citations.slice()) { - waitingCallback(); - } - - if (frontMatter.bibliographyParsed) { - for (const waitingCallback of Controller.waitingOn.bibliography.slice()) { - waitingCallback(); - } - } - - const footnotesList = document.querySelector("d-footnote-list"); - if (footnotesList) { - const footnotes = document.querySelectorAll("d-footnote"); - footnotesList.footnotes = footnotes; - } - } - } // listeners - }; // Controller - - var base = "/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nhtml {\n font-size: 14px;\n\tline-height: 1.6em;\n /* font-family: \"Libre Franklin\", \"Helvetica Neue\", sans-serif; */\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", Arial, sans-serif;\n /*, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";*/\n text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\n\n@media(min-width: 768px) {\n html {\n font-size: 16px;\n }\n}\n\nbody {\n margin: 0;\n}\n\na {\n color: #004276;\n}\n\nfigure {\n margin: 0;\n}\n\ntable {\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}\n\ntable th {\n\ttext-align: left;\n}\n\ntable thead {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\ntable thead th {\n padding-bottom: 0.5em;\n}\n\ntable tbody :first-child td {\n padding-top: 0.5em;\n}\n\npre {\n overflow: auto;\n max-width: 100%;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1em;\n}\n\nsup, sub {\n vertical-align: baseline;\n position: relative;\n top: -0.4em;\n line-height: 1em;\n}\n\nsub {\n top: 0.4em;\n}\n\n.kicker,\n.marker {\n font-size: 15px;\n font-weight: 600;\n color: rgba(0, 0, 0, 0.5);\n}\n\n\n/* Headline */\n\n@media(min-width: 1024px) {\n d-title h1 span {\n display: block;\n }\n}\n\n/* Figure */\n\nfigure {\n position: relative;\n margin-bottom: 2.5em;\n margin-top: 1.5em;\n}\n\nfigcaption+figure {\n\n}\n\nfigure img {\n width: 100%;\n}\n\nfigure svg text,\nfigure svg tspan {\n}\n\nfigcaption,\n.figcaption {\n color: rgba(0, 0, 0, 0.6);\n font-size: 12px;\n line-height: 1.5em;\n}\n\n@media(min-width: 1024px) {\nfigcaption,\n.figcaption {\n font-size: 13px;\n }\n}\n\nfigure.external img {\n background: white;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n padding: 18px;\n box-sizing: border-box;\n}\n\nfigcaption a {\n color: rgba(0, 0, 0, 0.6);\n}\n\nfigcaption b,\nfigcaption strong, {\n font-weight: 600;\n color: rgba(0, 0, 0, 1.0);\n}\n"; - - var layout = "/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@supports not (display: grid) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n display: block;\n padding: 8px;\n }\n}\n\n.base-grid,\ndistill-header,\nd-title,\nd-abstract,\nd-article,\nd-appendix,\ndistill-appendix,\nd-byline,\nd-footnote-list,\nd-citation-list,\ndistill-footer {\n display: grid;\n justify-items: stretch;\n grid-template-columns: [screen-start] 8px [page-start kicker-start text-start gutter-start middle-start] 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr [text-end page-end gutter-end kicker-end middle-end] 8px [screen-end];\n grid-column-gap: 8px;\n}\n\n.grid {\n display: grid;\n grid-column-gap: 8px;\n}\n\n@media(min-width: 768px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start middle-start text-start] 45px 45px 45px 45px 45px 45px 45px 45px [ kicker-end text-end gutter-start] 45px [middle-end] 45px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 16px;\n }\n\n .grid {\n grid-column-gap: 16px;\n }\n}\n\n@media(min-width: 1000px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start] 50px [middle-start] 50px [text-start kicker-end] 50px 50px 50px 50px 50px 50px 50px 50px [text-end gutter-start] 50px [middle-end] 50px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 16px;\n }\n\n .grid {\n grid-column-gap: 16px;\n }\n}\n\n@media(min-width: 1180px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start] 60px [middle-start] 60px [text-start kicker-end] 60px 60px 60px 60px 60px 60px 60px 60px [text-end gutter-start] 60px [middle-end] 60px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 32px;\n }\n\n .grid {\n grid-column-gap: 32px;\n }\n}\n\n\n\n\n.base-grid {\n grid-column: screen;\n}\n\n/* .l-body,\nd-article > * {\n grid-column: text;\n}\n\n.l-page,\nd-title > *,\nd-figure {\n grid-column: page;\n} */\n\n.l-gutter {\n grid-column: gutter;\n}\n\n.l-text,\n.l-body {\n grid-column: text;\n}\n\n.l-page {\n grid-column: page;\n}\n\n.l-body-outset {\n grid-column: middle;\n}\n\n.l-page-outset {\n grid-column: page;\n}\n\n.l-screen {\n grid-column: screen;\n}\n\n.l-screen-inset {\n grid-column: screen;\n padding-left: 16px;\n padding-left: 16px;\n}\n\n\n/* Aside */\n\nd-article aside {\n grid-column: gutter;\n font-size: 12px;\n line-height: 1.6em;\n color: rgba(0, 0, 0, 0.6)\n}\n\n@media(min-width: 768px) {\n aside {\n grid-column: gutter;\n }\n\n .side {\n grid-column: gutter;\n }\n}\n"; - - var print = "/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@media print {\n\n @page {\n size: 8in 11in;\n @bottom-right {\n content: counter(page) \" of \" counter(pages);\n }\n }\n\n html {\n /* no general margins -- CSS Grid takes care of those */\n }\n\n p, code {\n page-break-inside: avoid;\n }\n\n h2, h3 {\n page-break-after: avoid;\n }\n\n d-header {\n visibility: hidden;\n }\n\n d-footer {\n display: none!important;\n }\n\n}\n"; - - var byline = "/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-byline {\n contain: style;\n overflow: hidden;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n font-size: 0.8rem;\n line-height: 1.8em;\n padding: 1.5rem 0;\n min-height: 1.8em;\n}\n\n\nd-byline .byline {\n grid-template-columns: 1fr 1fr;\n grid-column: text;\n}\n\n@media(min-width: 768px) {\n d-byline .byline {\n grid-template-columns: 1fr 1fr 1fr 1fr;\n }\n}\n\nd-byline .authors-affiliations {\n grid-column-end: span 2;\n grid-template-columns: 1fr 1fr;\n margin-bottom: 1em;\n}\n\n@media(min-width: 768px) {\n d-byline .authors-affiliations {\n margin-bottom: 0;\n }\n}\n\nd-byline h3 {\n font-size: 0.6rem;\n font-weight: 400;\n color: rgba(0, 0, 0, 0.5);\n margin: 0;\n text-transform: uppercase;\n}\n\nd-byline p {\n margin: 0;\n}\n\nd-byline a,\nd-article d-byline a {\n color: rgba(0, 0, 0, 0.8);\n text-decoration: none;\n border-bottom: none;\n}\n\nd-article d-byline a:hover {\n text-decoration: underline;\n border-bottom: none;\n}\n\nd-byline p.author {\n font-weight: 500;\n}\n\nd-byline .affiliations {\n\n}\n"; - - var article = "/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-article {\n contain: layout style;\n overflow-x: hidden;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n padding-top: 2rem;\n color: rgba(0, 0, 0, 0.8);\n}\n\nd-article > * {\n grid-column: text;\n}\n\n@media(min-width: 768px) {\n d-article {\n font-size: 16px;\n }\n}\n\n@media(min-width: 1024px) {\n d-article {\n font-size: 1.06rem;\n line-height: 1.7em;\n }\n}\n\n\n/* H2 */\n\n\nd-article .marker {\n text-decoration: none;\n border: none;\n counter-reset: section;\n grid-column: kicker;\n line-height: 1.7em;\n}\n\nd-article .marker:hover {\n border: none;\n}\n\nd-article .marker span {\n padding: 0 3px 4px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n position: relative;\n top: 4px;\n}\n\nd-article .marker:hover span {\n color: rgba(0, 0, 0, 0.7);\n border-bottom: 1px solid rgba(0, 0, 0, 0.7);\n}\n\nd-article h2 {\n font-weight: 600;\n font-size: 24px;\n line-height: 1.25em;\n margin: 2rem 0 1.5rem 0;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n padding-bottom: 1rem;\n}\n\n@media(min-width: 1024px) {\n d-article h2 {\n font-size: 36px;\n }\n}\n\n/* H3 */\n\nd-article h3 {\n font-weight: 700;\n font-size: 18px;\n line-height: 1.4em;\n margin-bottom: 1em;\n margin-top: 2em;\n}\n\n@media(min-width: 1024px) {\n d-article h3 {\n font-size: 20px;\n }\n}\n\n/* H4 */\n\nd-article h4 {\n font-weight: 600;\n text-transform: uppercase;\n font-size: 14px;\n line-height: 1.4em;\n}\n\nd-article a {\n color: inherit;\n}\n\nd-article p,\nd-article ul,\nd-article ol,\nd-article blockquote {\n margin-top: 0;\n margin-bottom: 1em;\n margin-left: 0;\n margin-right: 0;\n}\n\nd-article blockquote {\n border-left: 2px solid rgba(0, 0, 0, 0.2);\n padding-left: 2em;\n font-style: italic;\n color: rgba(0, 0, 0, 0.6);\n}\n\nd-article a {\n border-bottom: 1px solid rgba(0, 0, 0, 0.4);\n text-decoration: none;\n}\n\nd-article a:hover {\n border-bottom: 1px solid rgba(0, 0, 0, 0.8);\n}\n\nd-article .link {\n text-decoration: underline;\n cursor: pointer;\n}\n\nd-article ul,\nd-article ol {\n padding-left: 24px;\n}\n\nd-article li {\n margin-bottom: 1em;\n margin-left: 0;\n padding-left: 0;\n}\n\nd-article li:last-child {\n margin-bottom: 0;\n}\n\nd-article pre {\n font-size: 14px;\n margin-bottom: 20px;\n}\n\nd-article hr {\n grid-column: screen;\n width: 100%;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n margin-top: 60px;\n margin-bottom: 60px;\n}\n\nd-article section {\n margin-top: 60px;\n margin-bottom: 60px;\n}\n\nd-article span.equation-mimic {\n font-family: georgia;\n font-size: 115%;\n font-style: italic;\n}\n\nd-article > d-code,\nd-article section > d-code {\n display: block;\n}\n\nd-article > d-math[block],\nd-article section > d-math[block] {\n display: block;\n}\n\n@media (max-width: 768px) {\n d-article > d-code,\n d-article section > d-code,\n d-article > d-math[block],\n d-article section > d-math[block] {\n overflow-x: scroll;\n -ms-overflow-style: none; // IE 10+\n overflow: -moz-scrollbars-none; // Firefox\n }\n\n d-article > d-code::-webkit-scrollbar,\n d-article section > d-code::-webkit-scrollbar,\n d-article > d-math[block]::-webkit-scrollbar,\n d-article section > d-math[block]::-webkit-scrollbar {\n display: none; // Safari and Chrome\n }\n}\n\nd-article .citation {\n color: #668;\n cursor: pointer;\n}\n\nd-include {\n width: auto;\n display: block;\n}\n\nd-figure {\n contain: layout style;\n}\n\n/* KaTeX */\n\n.katex, .katex-prerendered {\n contain: style;\n display: inline-block;\n}\n\n/* Tables */\n\nd-article table {\n border-collapse: collapse;\n margin-bottom: 1.5rem;\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n}\n\nd-article table th {\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n}\n\nd-article table td {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\nd-article table tr:last-of-type td {\n border-bottom: none;\n}\n\nd-article table th,\nd-article table td {\n font-size: 15px;\n padding: 2px 8px;\n}\n\nd-article table tbody :first-child td {\n padding-top: 2px;\n}\n"; - - var title = "/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-title {\n padding: 2rem 0 1.5rem;\n contain: layout style;\n overflow-x: hidden;\n}\n\n@media(min-width: 768px) {\n d-title {\n padding: 4rem 0 1.5rem;\n }\n}\n\nd-title h1 {\n grid-column: text;\n font-size: 40px;\n font-weight: 700;\n line-height: 1.1em;\n margin: 0 0 0.5rem;\n}\n\n@media(min-width: 768px) {\n d-title h1 {\n font-size: 50px;\n }\n}\n\nd-title p {\n font-weight: 300;\n font-size: 1.2rem;\n line-height: 1.55em;\n grid-column: text;\n}\n\nd-title .status {\n margin-top: 0px;\n font-size: 12px;\n color: #009688;\n opacity: 0.8;\n grid-column: kicker;\n}\n\nd-title .status span {\n line-height: 1;\n display: inline-block;\n padding: 6px 0;\n border-bottom: 1px solid #80cbc4;\n font-size: 11px;\n text-transform: uppercase;\n}\n"; - - // Copyright 2018 The Distill Template Authors - - const styles = base + layout + title + byline + article + math + print; - - function makeStyleTag(dom) { - - const styleTagId = 'distill-prerendered-styles'; - const prerenderedTag = dom.getElementById(styleTagId); - if (!prerenderedTag) { - const styleTag = dom.createElement('style'); - styleTag.id = styleTagId; - styleTag.type = 'text/css'; - const cssTextTag = dom.createTextNode(styles); - styleTag.appendChild(cssTextTag); - const firstScriptTag = dom.head.querySelector('script'); - dom.head.insertBefore(styleTag, firstScriptTag); - } - - } - - // Copyright 2018 The Distill Template Authors - // - // Licensed under the Apache License, Version 2.0 (the "License"); - // you may not use this file except in compliance with the License. - // You may obtain a copy of the License at - // - // http://www.apache.org/licenses/LICENSE-2.0 - // - // Unless required by applicable law or agreed to in writing, software - // distributed under the License is distributed on an "AS IS" BASIS, - // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - // See the License for the specific language governing permissions and - // limitations under the License. - - function addPolyfill(polyfill, polyfillLoadedCallback) { - console.debug('Runlevel 0: Polyfill required: ' + polyfill.name); - const script = document.createElement('script'); - script.src = polyfill.url; - script.async = false; - if (polyfillLoadedCallback) { - script.onload = function() { polyfillLoadedCallback(polyfill); }; - } - script.onerror = function() { - new Error('Runlevel 0: Polyfills failed to load script ' + polyfill.name); - }; - document.head.appendChild(script); - } - - const polyfills = [ - { - name: 'WebComponents', - support: function() { - return 'customElements' in window && - 'attachShadow' in Element.prototype && - 'getRootNode' in Element.prototype && - 'content' in document.createElement('template') && - 'Promise' in window && - 'from' in Array; - }, - url: 'https://distill.pub/third-party/polyfills/webcomponents-lite.js' - }, { - name: 'IntersectionObserver', - support: function() { - return 'IntersectionObserver' in window && - 'IntersectionObserverEntry' in window; - }, - url: 'https://distill.pub/third-party/polyfills/intersection-observer.js' - }, - ]; - - class Polyfills { - - static browserSupportsAllFeatures() { - return polyfills.every((poly) => poly.support()); - } - - static load(callback) { - // Define an intermediate callback that checks if all is loaded. - const polyfillLoaded = function(polyfill) { - polyfill.loaded = true; - console.debug('Runlevel 0: Polyfill has finished loading: ' + polyfill.name); - // console.debug(window[polyfill.name]); - if (Polyfills.neededPolyfills.every((poly) => poly.loaded)) { - console.debug('Runlevel 0: All required polyfills have finished loading.'); - console.debug('Runlevel 0->1.'); - window.distillRunlevel = 1; - callback(); - } - }; - // Add polyfill script tags - for (const polyfill of Polyfills.neededPolyfills) { - addPolyfill(polyfill, polyfillLoaded); - } - } - - static get neededPolyfills() { - if (!Polyfills._neededPolyfills) { - Polyfills._neededPolyfills = polyfills.filter((poly) => !poly.support()); - } - return Polyfills._neededPolyfills; - } - } - - // Copyright 2018 The Distill Template Authors - // - // 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. - - // const marginSmall = 16; - // const marginLarge = 3 * marginSmall; - // const margin = marginSmall + marginLarge; - // const gutter = marginSmall; - // const outsetAmount = margin / 2; - // const numCols = 4; - // const numGutters = numCols - 1; - // const columnWidth = (768 - 2 * marginLarge - numGutters * gutter) / numCols; - // - // const screenwidth = 768; - // const pageWidth = screenwidth - 2 * marginLarge; - // const bodyWidth = pageWidth - columnWidth - gutter; - - function body(selector) { - return `${selector} { - grid-column: left / text; - } - `; - } - - // Copyright 2018 The Distill Template Authors - - const T$1 = Template('d-abstract', ` - - - -`); - - class Abstract extends T$1(HTMLElement) { - - } - - // Copyright 2018 The Distill Template Authors - - const T$2 = Template('d-appendix', ` - - -`, false); - - class Appendix extends T$2(HTMLElement) { - - } - - // Copyright 2018 The Distill Template Authors - // - // 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. - - // import { Template } from '../mixins/template'; - // import { Controller } from '../controller'; - - const isOnlyWhitespace = /^\s*$/; - - class Article extends HTMLElement { - static get is() { return 'd-article'; } - - constructor() { - super(); - - new MutationObserver( (mutations) => { - for (const mutation of mutations) { - for (const addedNode of mutation.addedNodes) { - switch (addedNode.nodeName) { - case '#text': { // usually text nodes are only linebreaks. - const text = addedNode.nodeValue; - if (!isOnlyWhitespace.test(text)) { - console.warn('Use of unwrapped text in distill articles is discouraged as it breaks layout! Please wrap any text in a or

tag. We found the following text: ' + text); - const wrapper = document.createElement('span'); - wrapper.innerHTML = addedNode.nodeValue; - addedNode.parentNode.insertBefore(wrapper, addedNode); - addedNode.parentNode.removeChild(addedNode); - } - } break; - } - } - } - }).observe(this, {childList: true}); - } - - } - - var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; - - function createCommonjsModule(fn, module) { - return module = { exports: {} }, fn(module, module.exports), module.exports; - } - - var bibtexParse = createCommonjsModule(function (module, exports) { - /* start bibtexParse 0.0.22 */ - - //Original work by Henrik Muehe (c) 2010 - // - //CommonJS port by Mikola Lysenko 2013 - // - //Port to Browser lib by ORCID / RCPETERS - // - //Issues: - //no comment handling within strings - //no string concatenation - //no variable values yet - //Grammar implemented here: - //bibtex -> (string | preamble | comment | entry)*; - //string -> '@STRING' '{' key_equals_value '}'; - //preamble -> '@PREAMBLE' '{' value '}'; - //comment -> '@COMMENT' '{' value '}'; - //entry -> '@' key '{' key ',' key_value_list '}'; - //key_value_list -> key_equals_value (',' key_equals_value)*; - //key_equals_value -> key '=' value; - //value -> value_quotes | value_braces | key; - //value_quotes -> '"' .*? '"'; // not quite - //value_braces -> '{' .*? '"'; // not quite - (function(exports) { - - function BibtexParser() { - - this.months = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"]; - this.notKey = [',','{','}',' ','=']; - this.pos = 0; - this.input = ""; - this.entries = new Array(); - - this.currentEntry = ""; - - this.setInput = function(t) { - this.input = t; - }; - - this.getEntries = function() { - return this.entries; - }; - - this.isWhitespace = function(s) { - return (s == ' ' || s == '\r' || s == '\t' || s == '\n'); - }; - - this.match = function(s, canCommentOut) { - if (canCommentOut == undefined || canCommentOut == null) - canCommentOut = true; - this.skipWhitespace(canCommentOut); - if (this.input.substring(this.pos, this.pos + s.length) == s) { - this.pos += s.length; - } else { - throw "Token mismatch, expected " + s + ", found " - + this.input.substring(this.pos); - } this.skipWhitespace(canCommentOut); - }; - - this.tryMatch = function(s, canCommentOut) { - if (canCommentOut == undefined || canCommentOut == null) - canCommentOut = true; - this.skipWhitespace(canCommentOut); - if (this.input.substring(this.pos, this.pos + s.length) == s) { - return true; - } else { - return false; - } }; - - /* when search for a match all text can be ignored, not just white space */ - this.matchAt = function() { - while (this.input.length > this.pos && this.input[this.pos] != '@') { - this.pos++; - } - if (this.input[this.pos] == '@') { - return true; - } return false; - }; - - this.skipWhitespace = function(canCommentOut) { - while (this.isWhitespace(this.input[this.pos])) { - this.pos++; - } if (this.input[this.pos] == "%" && canCommentOut == true) { - while (this.input[this.pos] != "\n") { - this.pos++; - } this.skipWhitespace(canCommentOut); - } }; - - this.value_braces = function() { - var bracecount = 0; - this.match("{", false); - var start = this.pos; - var escaped = false; - while (true) { - if (!escaped) { - if (this.input[this.pos] == '}') { - if (bracecount > 0) { - bracecount--; - } else { - var end = this.pos; - this.match("}", false); - return this.input.substring(start, end); - } } else if (this.input[this.pos] == '{') { - bracecount++; - } else if (this.pos >= this.input.length - 1) { - throw "Unterminated value"; - } } if (this.input[this.pos] == '\\' && escaped == false) - escaped = true; - else - escaped = false; - this.pos++; - } }; - - this.value_comment = function() { - var str = ''; - var brcktCnt = 0; - while (!(this.tryMatch("}", false) && brcktCnt == 0)) { - str = str + this.input[this.pos]; - if (this.input[this.pos] == '{') - brcktCnt++; - if (this.input[this.pos] == '}') - brcktCnt--; - if (this.pos >= this.input.length - 1) { - throw "Unterminated value:" + this.input.substring(start); - } this.pos++; - } return str; - }; - - this.value_quotes = function() { - this.match('"', false); - var start = this.pos; - var escaped = false; - while (true) { - if (!escaped) { - if (this.input[this.pos] == '"') { - var end = this.pos; - this.match('"', false); - return this.input.substring(start, end); - } else if (this.pos >= this.input.length - 1) { - throw "Unterminated value:" + this.input.substring(start); - } } - if (this.input[this.pos] == '\\' && escaped == false) - escaped = true; - else - escaped = false; - this.pos++; - } }; - - this.single_value = function() { - var start = this.pos; - if (this.tryMatch("{")) { - return this.value_braces(); - } else if (this.tryMatch('"')) { - return this.value_quotes(); - } else { - var k = this.key(); - if (k.match("^[0-9]+$")) - return k; - else if (this.months.indexOf(k.toLowerCase()) >= 0) - return k.toLowerCase(); - else - throw "Value expected:" + this.input.substring(start) + ' for key: ' + k; - - } }; - - this.value = function() { - var values = []; - values.push(this.single_value()); - while (this.tryMatch("#")) { - this.match("#"); - values.push(this.single_value()); - } return values.join(""); - }; - - this.key = function() { - var start = this.pos; - while (true) { - if (this.pos >= this.input.length) { - throw "Runaway key"; - } // а-яА-Я is Cyrillic - //console.log(this.input[this.pos]); - if (this.notKey.indexOf(this.input[this.pos]) >= 0) { - return this.input.substring(start, this.pos); - } else { - this.pos++; - - } } }; - - this.key_equals_value = function() { - var key = this.key(); - if (this.tryMatch("=")) { - this.match("="); - var val = this.value(); - return [ key, val ]; - } else { - throw "... = value expected, equals sign missing:" - + this.input.substring(this.pos); - } }; - - this.key_value_list = function() { - var kv = this.key_equals_value(); - this.currentEntry['entryTags'] = {}; - this.currentEntry['entryTags'][kv[0]] = kv[1]; - while (this.tryMatch(",")) { - this.match(","); - // fixes problems with commas at the end of a list - if (this.tryMatch("}")) { - break; - } - kv = this.key_equals_value(); - this.currentEntry['entryTags'][kv[0]] = kv[1]; - } }; - - this.entry_body = function(d) { - this.currentEntry = {}; - this.currentEntry['citationKey'] = this.key(); - this.currentEntry['entryType'] = d.substring(1); - this.match(","); - this.key_value_list(); - this.entries.push(this.currentEntry); - }; - - this.directive = function() { - this.match("@"); - return "@" + this.key(); - }; - - this.preamble = function() { - this.currentEntry = {}; - this.currentEntry['entryType'] = 'PREAMBLE'; - this.currentEntry['entry'] = this.value_comment(); - this.entries.push(this.currentEntry); - }; - - this.comment = function() { - this.currentEntry = {}; - this.currentEntry['entryType'] = 'COMMENT'; - this.currentEntry['entry'] = this.value_comment(); - this.entries.push(this.currentEntry); - }; - - this.entry = function(d) { - this.entry_body(d); - }; - - this.bibtex = function() { - while (this.matchAt()) { - var d = this.directive(); - this.match("{"); - if (d == "@STRING") { - this.string(); - } else if (d == "@PREAMBLE") { - this.preamble(); - } else if (d == "@COMMENT") { - this.comment(); - } else { - this.entry(d); - } - this.match("}"); - } }; - } - exports.toJSON = function(bibtex) { - var b = new BibtexParser(); - b.setInput(bibtex); - b.bibtex(); - return b.entries; - }; - - /* added during hackathon don't hate on me */ - exports.toBibtex = function(json) { - var out = ''; - for ( var i in json) { - out += "@" + json[i].entryType; - out += '{'; - if (json[i].citationKey) - out += json[i].citationKey + ', '; - if (json[i].entry) - out += json[i].entry ; - if (json[i].entryTags) { - var tags = ''; - for (var jdx in json[i].entryTags) { - if (tags.length != 0) - tags += ', '; - tags += jdx + '= {' + json[i].entryTags[jdx] + '}'; - } - out += tags; - } - out += '}\n\n'; - } - return out; - - }; - - })( exports); - - /* end bibtexParse */ - }); - - // Copyright 2018 The Distill Template Authors - - function normalizeTag(string) { - return string - .replace(/[\t\n ]+/g, ' ') - .replace(/{\\["^`.'acu~Hvs]( )?([a-zA-Z])}/g, (full, x, char) => char) - .replace(/{\\([a-zA-Z])}/g, (full, char) => char); - } - - function parseBibtex(bibtex) { - const bibliography = new Map(); - const parsedEntries = bibtexParse.toJSON(bibtex); - for (const entry of parsedEntries) { - // normalize tags; note entryTags is an object, not Map - for (const [key, value] of Object.entries(entry.entryTags)) { - entry.entryTags[key.toLowerCase()] = normalizeTag(value); - } - entry.entryTags.type = entry.entryType; - // add to bibliography - bibliography.set(entry.citationKey, entry.entryTags); - } - return bibliography; - } - - function serializeFrontmatterToBibtex(frontMatter) { - return `@article{${frontMatter.slug}, - author = {${frontMatter.bibtexAuthors}}, - title = {${frontMatter.title}}, - journal = {${frontMatter.journal.title}}, - year = {${frontMatter.publishedYear}}, - note = {${frontMatter.url}}, - doi = {${frontMatter.doi}} -}`; - } - - // Copyright 2018 The Distill Template Authors - - class Bibliography extends HTMLElement { - - static get is() { return 'd-bibliography'; } - - constructor() { - super(); - - // set up mutation observer - const options = {childList: true, characterData: true, subtree: true}; - const observer = new MutationObserver( (entries) => { - for (const entry of entries) { - if (entry.target.nodeName === 'SCRIPT' || entry.type === 'characterData') { - this.parseIfPossible(); - } - } - }); - observer.observe(this, options); - } - - connectedCallback() { - requestAnimationFrame(() => { - this.parseIfPossible(); - }); - } - - parseIfPossible() { - const scriptTag = this.querySelector('script'); - if (!scriptTag) return; - if (scriptTag.type == 'text/bibtex') { - const newBibtex = scriptTag.textContent; - if (this.bibtex !== newBibtex) { - this.bibtex = newBibtex; - const bibliography = parseBibtex(this.bibtex); - this.notify(bibliography); - } - } else if (scriptTag.type == 'text/json') { - const bibliography = new Map(JSON.parse(scriptTag.textContent)); - this.notify(bibliography); - } else { - console.warn('Unsupported bibliography script tag type: ' + scriptTag.type); - } - } - - notify(bibliography) { - const options = { detail: bibliography, bubbles: true }; - const event = new CustomEvent('onBibliographyChanged', options); - this.dispatchEvent(event); - } - - /* observe 'src' attribute */ - - static get observedAttributes() { - return ['src']; - } - - receivedBibtex(event) { - const bibliography = parseBibtex(event.target.response); - this.notify(bibliography); - } - - attributeChangedCallback(name, oldValue, newValue) { - var oReq = new XMLHttpRequest(); - oReq.onload = (e) => this.receivedBibtex(e); - oReq.onerror = () => console.warn(`Could not load Bibtex! (tried ${newValue})`); - oReq.responseType = 'text'; - oReq.open('GET', newValue, true); - oReq.send(); - } - - - } - - // Copyright 2018 The Distill Template Authors - // - // 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. - - // import style from '../styles/d-byline.css'; - - function bylineTemplate(frontMatter) { - return ` -

-`; - } - - class Byline extends HTMLElement { - - static get is() { return 'd-byline'; } - - set frontMatter(frontMatter) { - this.innerHTML = bylineTemplate(frontMatter); - } - - } - - // Copyright 2018 The Distill Template Authors - - const T$3 = Template( - "d-cite", - ` - - - - -
- -
-` - ); - - class Cite extends T$3(HTMLElement) { - /* Lifecycle */ - constructor() { - super(); - this._numbers = []; - this._entries = []; - } - - connectedCallback() { - this.outerSpan = this.root.querySelector("#citation-"); - this.innerSpan = this.root.querySelector(".citation-number"); - this.hoverBox = this.root.querySelector("d-hover-box"); - window.customElements.whenDefined("d-hover-box").then(() => { - this.hoverBox.listen(this); - }); - // in case this component got connected after values were set - if (this.numbers) { - this.displayNumbers(this.numbers); - } - if (this.entries) { - this.displayEntries(this.entries); - } - } - - //TODO This causes an infinite loop on firefox with polyfills. - // This is only needed for interactive editing so no priority. - // disconnectedCallback() { - // const options = { detail: [this, this.keys], bubbles: true }; - // const event = new CustomEvent('onCiteKeyRemoved', options); - // document.dispatchEvent(event); - // } - - /* observe 'key' attribute */ - - static get observedAttributes() { - return ["key", "bibtex-key"]; - } - - attributeChangedCallback(name, oldValue, newValue) { - const eventName = oldValue ? "onCiteKeyChanged" : "onCiteKeyCreated"; - const keys = newValue.split(",").map(k => k.trim()); - const options = { detail: [this, keys], bubbles: true }; - const event = new CustomEvent(eventName, options); - document.dispatchEvent(event); - } - - set key(value) { - this.setAttribute("key", value); - } - - get key() { - return this.getAttribute("key") || this.getAttribute("bibtex-key"); - } - - get keys() { - const result = this.key.split(","); - console.log(result); - return result; - } - - /* Setters & Rendering */ - - set numbers(numbers) { - this._numbers = numbers; - this.displayNumbers(numbers); - } - - get numbers() { - return this._numbers; - } - - displayNumbers(numbers) { - if (!this.innerSpan) return; - const numberStrings = numbers.map(index => { - return index == -1 ? "?" : index + 1 + ""; - }); - const textContent = "[" + numberStrings.join(", ") + "]"; - this.innerSpan.textContent = textContent; - } - - set entries(entries) { - this._entries = entries; - this.displayEntries(entries); - } - - get entries() { - return this._entries; - } - - displayEntries(entries) { - if (!this.hoverBox) return; - this.hoverBox.innerHTML = `
    - ${entries - .map(hover_cite) - .map(html => `
  • ${html}
  • `) - .join("\n")} -
`; - } - } - - // Copyright 2018 The Distill Template Authors - - const styles$1 = ` -d-citation-list { - contain: style; -} - -d-citation-list .references { - grid-column: text; -} - -d-citation-list .references .title { - font-weight: 500; -} -`; - - function renderCitationList(element, entries, dom=document) { - if (entries.size > 0) { - element.style.display = ''; - let list = element.querySelector('.references'); - if (list) { - list.innerHTML = ''; - } else { - const stylesTag = dom.createElement('style'); - stylesTag.innerHTML = styles$1; - element.appendChild(stylesTag); - - const heading = dom.createElement('h3'); - heading.id = 'references'; - heading.textContent = 'References'; - element.appendChild(heading); - - list = dom.createElement('ol'); - list.id = 'references-list'; - list.className = 'references'; - element.appendChild(list); - } - - for (const [key, entry] of entries) { - const listItem = dom.createElement('li'); - listItem.id = key; - listItem.innerHTML = bibliography_cite(entry); - list.appendChild(listItem); - } - } else { - element.style.display = 'none'; - } - } - - class CitationList extends HTMLElement { - - static get is() { return 'd-citation-list'; } - - connectedCallback() { - if (!this.hasAttribute('distill-prerendered')) { - this.style.display = 'none'; - } - } - - set citations(citations) { - renderCitationList(this, citations); - } - - } - - var prism = createCommonjsModule(function (module) { - /* ********************************************** - Begin prism-core.js - ********************************************** */ - - var _self = (typeof window !== 'undefined') - ? window // if in browser - : ( - (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) - ? self // if in worker - : {} // if in node js - ); - - /** - * Prism: Lightweight, robust, elegant syntax highlighting - * MIT license http://www.opensource.org/licenses/mit-license.php/ - * @author Lea Verou http://lea.verou.me - */ - - var Prism = (function (_self){ - - // Private helper vars - var lang = /\blang(?:uage)?-([\w-]+)\b/i; - var uniqueId = 0; - - - var _ = { - manual: _self.Prism && _self.Prism.manual, - disableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler, - util: { - encode: function encode(tokens) { - if (tokens instanceof Token) { - return new Token(tokens.type, encode(tokens.content), tokens.alias); - } else if (Array.isArray(tokens)) { - return tokens.map(encode); - } else { - return tokens.replace(/&/g, '&').replace(/' + env.content + ''; - }; - - /** - * @param {string} text - * @param {LinkedList} tokenList - * @param {any} grammar - * @param {LinkedListNode} startNode - * @param {number} startPos - * @param {boolean} [oneshot=false] - * @param {string} [target] - */ - function matchGrammar(text, tokenList, grammar, startNode, startPos, oneshot, target) { - for (var token in grammar) { - if (!grammar.hasOwnProperty(token) || !grammar[token]) { - continue; - } - - var patterns = grammar[token]; - patterns = Array.isArray(patterns) ? patterns : [patterns]; - - for (var j = 0; j < patterns.length; ++j) { - if (target && target == token + ',' + j) { - return; - } - - var pattern = patterns[j], - inside = pattern.inside, - lookbehind = !!pattern.lookbehind, - greedy = !!pattern.greedy, - lookbehindLength = 0, - alias = pattern.alias; - - if (greedy && !pattern.pattern.global) { - // Without the global flag, lastIndex won't work - var flags = pattern.pattern.toString().match(/[imsuy]*$/)[0]; - pattern.pattern = RegExp(pattern.pattern.source, flags + 'g'); - } - - pattern = pattern.pattern || pattern; - - for ( // iterate the token list and keep track of the current token/string position - var currentNode = startNode.next, pos = startPos; - currentNode !== tokenList.tail; - pos += currentNode.value.length, currentNode = currentNode.next - ) { - - var str = currentNode.value; - - if (tokenList.length > text.length) { - // Something went terribly wrong, ABORT, ABORT! - return; - } - - if (str instanceof Token) { - continue; - } - - var removeCount = 1; // this is the to parameter of removeBetween - - if (greedy && currentNode != tokenList.tail.prev) { - pattern.lastIndex = pos; - var match = pattern.exec(text); - if (!match) { - break; - } - - var from = match.index + (lookbehind && match[1] ? match[1].length : 0); - var to = match.index + match[0].length; - var p = pos; - - // find the node that contains the match - p += currentNode.value.length; - while (from >= p) { - currentNode = currentNode.next; - p += currentNode.value.length; - } - // adjust pos (and p) - p -= currentNode.value.length; - pos = p; - - // the current node is a Token, then the match starts inside another Token, which is invalid - if (currentNode.value instanceof Token) { - continue; - } - - // find the last node which is affected by this match - for ( - var k = currentNode; - k !== tokenList.tail && (p < to || (typeof k.value === 'string' && !k.prev.value.greedy)); - k = k.next - ) { - removeCount++; - p += k.value.length; - } - removeCount--; - - // replace with the new match - str = text.slice(pos, p); - match.index -= pos; - } else { - pattern.lastIndex = 0; - - var match = pattern.exec(str); - } - - if (!match) { - if (oneshot) { - break; - } - - continue; - } - - if (lookbehind) { - lookbehindLength = match[1] ? match[1].length : 0; - } - - var from = match.index + lookbehindLength, - match = match[0].slice(lookbehindLength), - to = from + match.length, - before = str.slice(0, from), - after = str.slice(to); - - var removeFrom = currentNode.prev; - - if (before) { - removeFrom = addAfter(tokenList, removeFrom, before); - pos += before.length; - } - - removeRange(tokenList, removeFrom, removeCount); - - var wrapped = new Token(token, inside ? _.tokenize(match, inside) : match, alias, match, greedy); - currentNode = addAfter(tokenList, removeFrom, wrapped); - - if (after) { - addAfter(tokenList, currentNode, after); - } - - - if (removeCount > 1) - matchGrammar(text, tokenList, grammar, currentNode.prev, pos, true, token + ',' + j); - - if (oneshot) - break; - } - } - } - } - - /** - * @typedef LinkedListNode - * @property {T} value - * @property {LinkedListNode | null} prev The previous node. - * @property {LinkedListNode | null} next The next node. - * @template T - */ - - /** - * @template T - */ - function LinkedList() { - /** @type {LinkedListNode} */ - var head = { value: null, prev: null, next: null }; - /** @type {LinkedListNode} */ - var tail = { value: null, prev: head, next: null }; - head.next = tail; - - /** @type {LinkedListNode} */ - this.head = head; - /** @type {LinkedListNode} */ - this.tail = tail; - this.length = 0; - } - - /** - * Adds a new node with the given value to the list. - * @param {LinkedList} list - * @param {LinkedListNode} node - * @param {T} value - * @returns {LinkedListNode} The added node. - * @template T - */ - function addAfter(list, node, value) { - // assumes that node != list.tail && values.length >= 0 - var next = node.next; - - var newNode = { value: value, prev: node, next: next }; - node.next = newNode; - next.prev = newNode; - list.length++; - - return newNode; - } - /** - * Removes `count` nodes after the given node. The given node will not be removed. - * @param {LinkedList} list - * @param {LinkedListNode} node - * @param {number} count - * @template T - */ - function removeRange(list, node, count) { - var next = node.next; - for (var i = 0; i < count && next !== list.tail; i++) { - next = next.next; - } - node.next = next; - next.prev = node; - list.length -= i; - } - /** - * @param {LinkedList} list - * @returns {T[]} - * @template T - */ - function toArray(list) { - var array = []; - var node = list.head.next; - while (node !== list.tail) { - array.push(node.value); - node = node.next; - } - return array; - } - - - if (!_self.document) { - if (!_self.addEventListener) { - // in Node.js - return _; - } - - if (!_.disableWorkerMessageHandler) { - // In worker - _self.addEventListener('message', function (evt) { - var message = JSON.parse(evt.data), - lang = message.language, - code = message.code, - immediateClose = message.immediateClose; - - _self.postMessage(_.highlight(code, _.languages[lang], lang)); - if (immediateClose) { - _self.close(); - } - }, false); - } - - return _; - } - - //Get current script and highlight - var script = _.util.currentScript(); - - if (script) { - _.filename = script.src; - - if (script.hasAttribute('data-manual')) { - _.manual = true; - } - } - - function highlightAutomaticallyCallback() { - if (!_.manual) { - _.highlightAll(); - } - } - - if (!_.manual) { - // If the document state is "loading", then we'll use DOMContentLoaded. - // If the document state is "interactive" and the prism.js script is deferred, then we'll also use the - // DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they - // might take longer one animation frame to execute which can create a race condition where only some plugins have - // been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded. - // See https://github.com/PrismJS/prism/issues/2102 - var readyState = document.readyState; - if (readyState === 'loading' || readyState === 'interactive' && script && script.defer) { - document.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback); - } else { - if (window.requestAnimationFrame) { - window.requestAnimationFrame(highlightAutomaticallyCallback); - } else { - window.setTimeout(highlightAutomaticallyCallback, 16); - } - } - } - - return _; - - })(_self); - - if ( module.exports) { - module.exports = Prism; - } - - // hack for components to work correctly in node.js - if (typeof commonjsGlobal !== 'undefined') { - commonjsGlobal.Prism = Prism; - } - - - /* ********************************************** - Begin prism-markup.js - ********************************************** */ - - Prism.languages.markup = { - 'comment': //, - 'prolog': /<\?[\s\S]+?\?>/, - 'doctype': { - pattern: /"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:(?!)*\]\s*)?>/i, - greedy: true - }, - 'cdata': //i, - 'tag': { - pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i, - greedy: true, - inside: { - 'tag': { - pattern: /^<\/?[^\s>\/]+/i, - inside: { - 'punctuation': /^<\/?/, - 'namespace': /^[^\s>\/:]+:/ - } - }, - 'attr-value': { - pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i, - inside: { - 'punctuation': [ - /^=/, - { - pattern: /^(\s*)["']|["']$/, - lookbehind: true - } - ] - } - }, - 'punctuation': /\/?>/, - 'attr-name': { - pattern: /[^\s>\/]+/, - inside: { - 'namespace': /^[^\s>\/:]+:/ - } - } - - } - }, - 'entity': /&#?[\da-z]{1,8};/i - }; - - Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] = - Prism.languages.markup['entity']; - - // Plugin to make entity title show the real entity, idea by Roman Komarov - Prism.hooks.add('wrap', function(env) { - - if (env.type === 'entity') { - env.attributes['title'] = env.content.replace(/&/, '&'); - } - }); - - Object.defineProperty(Prism.languages.markup.tag, 'addInlined', { - /** - * Adds an inlined language to markup. - * - * An example of an inlined language is CSS with ` - - - -`); - - class Code extends Mutating(T$4(HTMLElement)) { - - renderContent() { - - // check if language can be highlighted - this.languageName = this.getAttribute('language'); - if (!this.languageName) { - console.warn('You need to provide a language attribute to your block to let us know how to highlight your code; e.g.:\n zeros = np.zeros(shape).'); - return; - } - const language = prism.languages[this.languageName]; - if (language == undefined) { - console.warn(`Distill does not yet support highlighting your code block in "${this.languageName}'.`); - return; - } - - let content = this.textContent; - const codeTag = this.shadowRoot.querySelector('#code-container'); - - if (this.hasAttribute('block')) { - // normalize the tab indents - content = content.replace(/\n/, ''); - const tabs = content.match(/\s*/); - content = content.replace(new RegExp('\n' + tabs, 'g'), '\n'); - content = content.trim(); - // wrap code block in pre tag if needed - if (codeTag.parentNode instanceof ShadowRoot) { - const preTag = document.createElement('pre'); - this.shadowRoot.removeChild(codeTag); - preTag.appendChild(codeTag); - this.shadowRoot.appendChild(preTag); - } - - } - - codeTag.className = `language-${this.languageName}`; - codeTag.innerHTML = prism.highlight(content, language); - } - - } - - // Copyright 2018 The Distill Template Authors - - const T$5 = Template('d-footnote', ` - - - -
- -
-
- - - - - -`); - - class Footnote extends T$5(HTMLElement) { - - constructor() { - super(); - - const options = {childList: true, characterData: true, subtree: true}; - const observer = new MutationObserver(this.notify); - observer.observe(this, options); - } - - notify() { - const options = { detail: this, bubbles: true }; - const event = new CustomEvent('onFootnoteChanged', options); - document.dispatchEvent(event); - } - - connectedCallback() { - // listen and notify about changes to slotted content - // const slot = this.shadowRoot.querySelector('#slot'); - // console.warn(slot.textContent); - // slot.addEventListener('slotchange', this.notify); - this.hoverBox = this.root.querySelector('d-hover-box'); - window.customElements.whenDefined('d-hover-box').then(() => { - this.hoverBox.listen(this); - }); - // create numeric ID - Footnote.currentFootnoteId += 1; - const IdString = Footnote.currentFootnoteId.toString(); - this.root.host.id = 'd-footnote-' + IdString; - - // set up hidden hover box - const id = 'dt-fn-hover-box-' + IdString; - this.hoverBox.id = id; - - // set up visible footnote marker - const span = this.root.querySelector('#fn-'); - span.setAttribute('id', 'fn-' + IdString); - span.setAttribute('data-hover-ref', id); - span.textContent = IdString; - } - - } - - Footnote.currentFootnoteId = 0; - - // Copyright 2018 The Distill Template Authors - - const T$6 = Template('d-footnote-list', ` - - -

Footnotes

-
    -`, false); - - class FootnoteList extends T$6(HTMLElement) { - - connectedCallback() { - super.connectedCallback(); - - this.list = this.root.querySelector('ol'); - // footnotes list is initially hidden - this.root.style.display = 'none'; - // look through document and register existing footnotes - // Store.subscribeTo('footnotes', (footnote) => { - // this.renderFootnote(footnote); - // }); - } - - // TODO: could optimize this to accept individual footnotes? - set footnotes(footnotes) { - this.list.innerHTML = ''; - if (footnotes.length) { - // ensure footnote list is visible - this.root.style.display = ''; - - for (const footnote of footnotes) { - // construct and append list item to show footnote - const listItem = document.createElement('li'); - listItem.id = footnote.id + '-listing'; - listItem.innerHTML = footnote.innerHTML; - - const backlink = document.createElement('a'); - backlink.setAttribute('class', 'footnote-backlink'); - backlink.textContent = '[↩]'; - backlink.href = '#' + footnote.id; - - listItem.appendChild(backlink); - this.list.appendChild(listItem); - } - } else { - // ensure footnote list is invisible - this.root.style.display = 'none'; - } - } - - } - - // Copyright 2018 The Distill Template Authors - - const T$7 = Template('d-hover-box', ` - - -
    -
    - -
    -
    -`); - - class HoverBox extends T$7(HTMLElement) { - - constructor() { - super(); - } - - connectedCallback() { - - } - - listen(element) { - // console.log(element) - this.bindDivEvents(this); - this.bindTriggerEvents(element); - // this.style.display = "block"; - } - - bindDivEvents(element) { - // For mice, same behavior as hovering on links - element.addEventListener('mouseover', () => { - if (!this.visible) this.showAtNode(element); - this.stopTimeout(); - }); - element.addEventListener('mouseout', () => { - this.extendTimeout(500); - }); - // Don't trigger body touchstart event when touching within box - element.addEventListener('touchstart', (event) => { - event.stopPropagation(); - }, {passive: true}); - // Close box when touching outside box - document.body.addEventListener('touchstart', () => { - this.hide(); - }, {passive: true}); - } - - bindTriggerEvents(node) { - node.addEventListener('mouseover', () => { - if (!this.visible) { - this.showAtNode(node); - } - this.stopTimeout(); - }); - - node.addEventListener('mouseout', () => { - this.extendTimeout(300); - }); - - node.addEventListener('touchstart', (event) => { - if (this.visible) { - this.hide(); - } else { - this.showAtNode(node); - } - // Don't trigger body touchstart event when touching link - event.stopPropagation(); - }, {passive: true}); - } - - show(position) { - this.visible = true; - this.style.display = 'block'; - // 10px extra offset from element - this.style.top = Math.round(position[1] + 10) + 'px'; - } - - showAtNode(node) { - // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetTop - const bbox = node.getBoundingClientRect(); - this.show([node.offsetLeft + bbox.width, node.offsetTop + bbox.height]); - } - - hide() { - this.visible = false; - this.style.display = 'none'; - this.stopTimeout(); - } - - stopTimeout() { - if (this.timeout) { - clearTimeout(this.timeout); - } - } - - extendTimeout(time) { - this.stopTimeout(); - this.timeout = setTimeout(() => { - this.hide(); - }, time); - } - - } - - // Copyright 2018 The Distill Template Authors - // - // 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. - - class Title extends HTMLElement { - static get is() { return 'd-title'; } - } - - // Copyright 2018 The Distill Template Authors - - const T$8 = Template('d-references', ` - -`, false); - - class References extends T$8(HTMLElement) { - - } - - // Copyright 2018 The Distill Template Authors - // - // 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. - - class TOC extends HTMLElement { - - static get is() { return 'd-toc'; } - - connectedCallback() { - if (!this.getAttribute('prerendered')) { - window.onload = () => { - const article = document.querySelector('d-article'); - const headings = article.querySelectorAll('h2, h3'); - renderTOC(this, headings); - }; - } - } - - } - - function renderTOC(element, headings) { - - let ToC =` - - -

    Table of contents

    -
      `; - - for (const el of headings) { - // should element be included in TOC? - const isInTitle = el.parentElement.tagName == 'D-TITLE'; - const isException = el.getAttribute('no-toc'); - if (isInTitle || isException) continue; - // create TOC entry - const title = el.textContent; - const link = '#' + el.getAttribute('id'); - - let newLine = '
    • ' + '' + title + '' + '
    • '; - if (el.tagName == 'H3') { - newLine = '
        ' + newLine + '
      '; - } else { - newLine += '
      '; - } - ToC += newLine; - - } - - ToC += '
    '; - element.innerHTML = ToC; - } - - // Copyright 2018 The Distill Template Authors - // - // 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. - - // Figure - // - // d-figure provides a state-machine of visibility events: - // - // scroll out of view - // +----------------+ - // *do work here* | | - // +----------------+ +-+---------+ +-v---------+ - // | ready +----> onscreen | | offscreen | - // +----------------+ +---------^-+ +---------+-+ - // | | - // +----------------+ - // scroll into view - // - - class Figure extends HTMLElement { - - static get is() { return 'd-figure'; } - - static get readyQueue() { - if (!Figure._readyQueue) { - Figure._readyQueue = []; - } - return Figure._readyQueue; - } - - static addToReadyQueue(figure) { - if (Figure.readyQueue.indexOf(figure) === -1) { - Figure.readyQueue.push(figure); - Figure.runReadyQueue(); - } - } - - static runReadyQueue() { - // console.log("Checking to run readyQueue, length: " + Figure.readyQueue.length + ", scrolling: " + Figure.isScrolling); - // if (Figure.isScrolling) return; - // console.log("Running ready Queue"); - const figure = Figure.readyQueue - .sort((a,b) => a._seenOnScreen - b._seenOnScreen ) - .filter((figure) => !figure._ready) - .pop(); - if (figure) { - figure.ready(); - requestAnimationFrame(Figure.runReadyQueue); - } - - } - - constructor() { - super(); - // debugger - this._ready = false; - this._onscreen = false; - this._offscreen = true; - } - - connectedCallback() { - this.loadsWhileScrolling = this.hasAttribute('loadsWhileScrolling'); - Figure.marginObserver.observe(this); - Figure.directObserver.observe(this); - } - - disconnectedCallback() { - Figure.marginObserver.unobserve(this); - Figure.directObserver.unobserve(this); - } - - // We use two separate observers: - // One with an extra 1000px margin to warn if the viewpoint gets close, - // And one for the actual on/off screen events - - static get marginObserver() { - if (!Figure._marginObserver) { - // if (!('IntersectionObserver' in window)) { - // throw new Error('no interscetionobbserver!'); - // } - const viewportHeight = window.innerHeight; - const margin = Math.floor(2 * viewportHeight); - const options = {rootMargin: margin + 'px 0px ' + margin + 'px 0px', threshold: 0.01}; - const callback = Figure.didObserveMarginIntersection; - const observer = new IntersectionObserver(callback, options); - Figure._marginObserver = observer; - } - return Figure._marginObserver; - } - - static didObserveMarginIntersection(entries) { - for (const entry of entries) { - const figure = entry.target; - if (entry.isIntersecting && !figure._ready) { - Figure.addToReadyQueue(figure); - } - } - } - - static get directObserver() { - if (!Figure._directObserver) { - Figure._directObserver = new IntersectionObserver( - Figure.didObserveDirectIntersection, { - rootMargin: '0px', threshold: [0, 1.0], - } - ); - } - return Figure._directObserver; - } - - static didObserveDirectIntersection(entries) { - for (const entry of entries) { - const figure = entry.target; - if (entry.isIntersecting) { - figure._seenOnScreen = new Date(); - // if (!figure._ready) { figure.ready(); } - if (figure._offscreen) { figure.onscreen(); } - } else { - if (figure._onscreen) { figure.offscreen(); } - } - } - } - - // Notify listeners that registered late, too: - - addEventListener(eventName, callback) { - super.addEventListener(eventName, callback); - // if we had already dispatched something while presumingly no one was listening, we do so again - // debugger - if (eventName === 'ready') { - if (Figure.readyQueue.indexOf(this) !== -1) { - this._ready = false; - Figure.runReadyQueue(); - } - } - if (eventName === 'onscreen') { - this.onscreen(); - } - } - - // Custom Events - - ready() { - // debugger - this._ready = true; - Figure.marginObserver.unobserve(this); - const event = new CustomEvent('ready'); - this.dispatchEvent(event); - } - - onscreen() { - this._onscreen = true; - this._offscreen = false; - const event = new CustomEvent('onscreen'); - this.dispatchEvent(event); - } - - offscreen() { - this._onscreen = false; - this._offscreen = true; - const event = new CustomEvent('offscreen'); - this.dispatchEvent(event); - } - - } - - if (typeof window !== 'undefined') { - - Figure.isScrolling = false; - let timeout; - const resetTimer = () => { - Figure.isScrolling = true; - clearTimeout(timeout); - timeout = setTimeout(() => { - Figure.isScrolling = false; - Figure.runReadyQueue(); - }, 500); - }; - window.addEventListener('scroll', resetTimer, true); - - } - - // Copyright 2018 The Distill Template Authors - - // This overlay is not secure. - // It is only meant as a social deterrent. - - const productionHostname = 'distill.pub'; - const T$9 = Template('d-interstitial', ` - - -
    -
    -

    This article is in review.

    -

    Do not share this URL or the contents of this article. Thank you!

    - -

    Enter the password we shared with you as part of the review process to view the article.

    -
    -
    -`); - - class Interstitial extends T$9(HTMLElement) { - - connectedCallback() { - if (this.shouldRemoveSelf()) { - this.parentElement.removeChild(this); - } else { - const passwordInput = this.root.querySelector('#interstitial-password-input'); - passwordInput.oninput = (event) => this.passwordChanged(event); - } - } - - passwordChanged(event) { - const entered = event.target.value; - if (entered === this.password) { - console.log('Correct password entered.'); - this.parentElement.removeChild(this); - if (typeof(Storage) !== 'undefined') { - console.log('Saved that correct password was entered.'); - localStorage.setItem(this.localStorageIdentifier(), 'true'); - } - } - } - - shouldRemoveSelf() { - // should never be visible in production - if (window && window.location.hostname === productionHostname) { - console.warn('Interstitial found on production, hiding it.'); - return true - } - // should only have to enter password once - if (typeof(Storage) !== 'undefined') { - if (localStorage.getItem(this.localStorageIdentifier()) === 'true') { - console.log('Loaded that correct password was entered before; skipping interstitial.'); - return true; - } - } - // otherwise, leave visible - return false; - } - - localStorageIdentifier() { - const prefix = 'distill-drafts'; - const suffix = 'interstitial-password-correct'; - return prefix + (window ? window.location.pathname : '-') + suffix - } - - } - - function ascending(a, b) { - return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; - } - - function bisector(compare) { - if (compare.length === 1) compare = ascendingComparator(compare); - return { - left: function(a, x, lo, hi) { - if (lo == null) lo = 0; - if (hi == null) hi = a.length; - while (lo < hi) { - var mid = lo + hi >>> 1; - if (compare(a[mid], x) < 0) lo = mid + 1; - else hi = mid; - } - return lo; - }, - right: function(a, x, lo, hi) { - if (lo == null) lo = 0; - if (hi == null) hi = a.length; - while (lo < hi) { - var mid = lo + hi >>> 1; - if (compare(a[mid], x) > 0) hi = mid; - else lo = mid + 1; - } - return lo; - } - }; - } - - function ascendingComparator(f) { - return function(d, x) { - return ascending(f(d), x); - }; - } - - var ascendingBisect = bisector(ascending); - var bisectRight = ascendingBisect.right; - - function range(start, stop, step) { - start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step; - - var i = -1, - n = Math.max(0, Math.ceil((stop - start) / step)) | 0, - range = new Array(n); - - while (++i < n) { - range[i] = start + i * step; - } - - return range; - } - - var e10 = Math.sqrt(50), - e5 = Math.sqrt(10), - e2 = Math.sqrt(2); - - function ticks(start, stop, count) { - var reverse, - i = -1, - n, - ticks, - step; - - stop = +stop, start = +start, count = +count; - if (start === stop && count > 0) return [start]; - if (reverse = stop < start) n = start, start = stop, stop = n; - if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return []; - - if (step > 0) { - start = Math.ceil(start / step); - stop = Math.floor(stop / step); - ticks = new Array(n = Math.ceil(stop - start + 1)); - while (++i < n) ticks[i] = (start + i) * step; - } else { - start = Math.floor(start * step); - stop = Math.ceil(stop * step); - ticks = new Array(n = Math.ceil(start - stop + 1)); - while (++i < n) ticks[i] = (start - i) / step; - } - - if (reverse) ticks.reverse(); - - return ticks; - } - - function tickIncrement(start, stop, count) { - var step = (stop - start) / Math.max(0, count), - power = Math.floor(Math.log(step) / Math.LN10), - error = step / Math.pow(10, power); - return power >= 0 - ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) - : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1); - } - - function tickStep(start, stop, count) { - var step0 = Math.abs(stop - start) / Math.max(0, count), - step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)), - error = step0 / step1; - if (error >= e10) step1 *= 10; - else if (error >= e5) step1 *= 5; - else if (error >= e2) step1 *= 2; - return stop < start ? -step1 : step1; - } - - function initRange(domain, range) { - switch (arguments.length) { - case 0: break; - case 1: this.range(domain); break; - default: this.range(range).domain(domain); break; - } - return this; - } - - function define(constructor, factory, prototype) { - constructor.prototype = factory.prototype = prototype; - prototype.constructor = constructor; - } - - function extend(parent, definition) { - var prototype = Object.create(parent.prototype); - for (var key in definition) prototype[key] = definition[key]; - return prototype; - } - - function Color() {} - - var darker = 0.7; - var brighter = 1 / darker; - - var reI = "\\s*([+-]?\\d+)\\s*", - reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*", - reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*", - reHex = /^#([0-9a-f]{3,8})$/, - reRgbInteger = new RegExp("^rgb\\(" + [reI, reI, reI] + "\\)$"), - reRgbPercent = new RegExp("^rgb\\(" + [reP, reP, reP] + "\\)$"), - reRgbaInteger = new RegExp("^rgba\\(" + [reI, reI, reI, reN] + "\\)$"), - reRgbaPercent = new RegExp("^rgba\\(" + [reP, reP, reP, reN] + "\\)$"), - reHslPercent = new RegExp("^hsl\\(" + [reN, reP, reP] + "\\)$"), - reHslaPercent = new RegExp("^hsla\\(" + [reN, reP, reP, reN] + "\\)$"); - - var named = { - aliceblue: 0xf0f8ff, - antiquewhite: 0xfaebd7, - aqua: 0x00ffff, - aquamarine: 0x7fffd4, - azure: 0xf0ffff, - beige: 0xf5f5dc, - bisque: 0xffe4c4, - black: 0x000000, - blanchedalmond: 0xffebcd, - blue: 0x0000ff, - blueviolet: 0x8a2be2, - brown: 0xa52a2a, - burlywood: 0xdeb887, - cadetblue: 0x5f9ea0, - chartreuse: 0x7fff00, - chocolate: 0xd2691e, - coral: 0xff7f50, - cornflowerblue: 0x6495ed, - cornsilk: 0xfff8dc, - crimson: 0xdc143c, - cyan: 0x00ffff, - darkblue: 0x00008b, - darkcyan: 0x008b8b, - darkgoldenrod: 0xb8860b, - darkgray: 0xa9a9a9, - darkgreen: 0x006400, - darkgrey: 0xa9a9a9, - darkkhaki: 0xbdb76b, - darkmagenta: 0x8b008b, - darkolivegreen: 0x556b2f, - darkorange: 0xff8c00, - darkorchid: 0x9932cc, - darkred: 0x8b0000, - darksalmon: 0xe9967a, - darkseagreen: 0x8fbc8f, - darkslateblue: 0x483d8b, - darkslategray: 0x2f4f4f, - darkslategrey: 0x2f4f4f, - darkturquoise: 0x00ced1, - darkviolet: 0x9400d3, - deeppink: 0xff1493, - deepskyblue: 0x00bfff, - dimgray: 0x696969, - dimgrey: 0x696969, - dodgerblue: 0x1e90ff, - firebrick: 0xb22222, - floralwhite: 0xfffaf0, - forestgreen: 0x228b22, - fuchsia: 0xff00ff, - gainsboro: 0xdcdcdc, - ghostwhite: 0xf8f8ff, - gold: 0xffd700, - goldenrod: 0xdaa520, - gray: 0x808080, - green: 0x008000, - greenyellow: 0xadff2f, - grey: 0x808080, - honeydew: 0xf0fff0, - hotpink: 0xff69b4, - indianred: 0xcd5c5c, - indigo: 0x4b0082, - ivory: 0xfffff0, - khaki: 0xf0e68c, - lavender: 0xe6e6fa, - lavenderblush: 0xfff0f5, - lawngreen: 0x7cfc00, - lemonchiffon: 0xfffacd, - lightblue: 0xadd8e6, - lightcoral: 0xf08080, - lightcyan: 0xe0ffff, - lightgoldenrodyellow: 0xfafad2, - lightgray: 0xd3d3d3, - lightgreen: 0x90ee90, - lightgrey: 0xd3d3d3, - lightpink: 0xffb6c1, - lightsalmon: 0xffa07a, - lightseagreen: 0x20b2aa, - lightskyblue: 0x87cefa, - lightslategray: 0x778899, - lightslategrey: 0x778899, - lightsteelblue: 0xb0c4de, - lightyellow: 0xffffe0, - lime: 0x00ff00, - limegreen: 0x32cd32, - linen: 0xfaf0e6, - magenta: 0xff00ff, - maroon: 0x800000, - mediumaquamarine: 0x66cdaa, - mediumblue: 0x0000cd, - mediumorchid: 0xba55d3, - mediumpurple: 0x9370db, - mediumseagreen: 0x3cb371, - mediumslateblue: 0x7b68ee, - mediumspringgreen: 0x00fa9a, - mediumturquoise: 0x48d1cc, - mediumvioletred: 0xc71585, - midnightblue: 0x191970, - mintcream: 0xf5fffa, - mistyrose: 0xffe4e1, - moccasin: 0xffe4b5, - navajowhite: 0xffdead, - navy: 0x000080, - oldlace: 0xfdf5e6, - olive: 0x808000, - olivedrab: 0x6b8e23, - orange: 0xffa500, - orangered: 0xff4500, - orchid: 0xda70d6, - palegoldenrod: 0xeee8aa, - palegreen: 0x98fb98, - paleturquoise: 0xafeeee, - palevioletred: 0xdb7093, - papayawhip: 0xffefd5, - peachpuff: 0xffdab9, - peru: 0xcd853f, - pink: 0xffc0cb, - plum: 0xdda0dd, - powderblue: 0xb0e0e6, - purple: 0x800080, - rebeccapurple: 0x663399, - red: 0xff0000, - rosybrown: 0xbc8f8f, - royalblue: 0x4169e1, - saddlebrown: 0x8b4513, - salmon: 0xfa8072, - sandybrown: 0xf4a460, - seagreen: 0x2e8b57, - seashell: 0xfff5ee, - sienna: 0xa0522d, - silver: 0xc0c0c0, - skyblue: 0x87ceeb, - slateblue: 0x6a5acd, - slategray: 0x708090, - slategrey: 0x708090, - snow: 0xfffafa, - springgreen: 0x00ff7f, - steelblue: 0x4682b4, - tan: 0xd2b48c, - teal: 0x008080, - thistle: 0xd8bfd8, - tomato: 0xff6347, - turquoise: 0x40e0d0, - violet: 0xee82ee, - wheat: 0xf5deb3, - white: 0xffffff, - whitesmoke: 0xf5f5f5, - yellow: 0xffff00, - yellowgreen: 0x9acd32 - }; - - define(Color, color, { - copy: function(channels) { - return Object.assign(new this.constructor, this, channels); - }, - displayable: function() { - return this.rgb().displayable(); - }, - hex: color_formatHex, // Deprecated! Use color.formatHex. - formatHex: color_formatHex, - formatHsl: color_formatHsl, - formatRgb: color_formatRgb, - toString: color_formatRgb - }); - - function color_formatHex() { - return this.rgb().formatHex(); - } - - function color_formatHsl() { - return hslConvert(this).formatHsl(); - } - - function color_formatRgb() { - return this.rgb().formatRgb(); - } - - function color(format) { - var m, l; - format = (format + "").trim().toLowerCase(); - return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000 - : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00 - : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000 - : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000 - : null) // invalid hex - : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0) - : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%) - : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1) - : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1) - : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%) - : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1) - : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins - : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0) - : null; - } - - function rgbn(n) { - return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1); - } - - function rgba(r, g, b, a) { - if (a <= 0) r = g = b = NaN; - return new Rgb(r, g, b, a); - } - - function rgbConvert(o) { - if (!(o instanceof Color)) o = color(o); - if (!o) return new Rgb; - o = o.rgb(); - return new Rgb(o.r, o.g, o.b, o.opacity); - } - - function rgb(r, g, b, opacity) { - return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity); - } - - function Rgb(r, g, b, opacity) { - this.r = +r; - this.g = +g; - this.b = +b; - this.opacity = +opacity; - } - - define(Rgb, rgb, extend(Color, { - brighter: function(k) { - k = k == null ? brighter : Math.pow(brighter, k); - return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); - }, - darker: function(k) { - k = k == null ? darker : Math.pow(darker, k); - return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); - }, - rgb: function() { - return this; - }, - displayable: function() { - return (-0.5 <= this.r && this.r < 255.5) - && (-0.5 <= this.g && this.g < 255.5) - && (-0.5 <= this.b && this.b < 255.5) - && (0 <= this.opacity && this.opacity <= 1); - }, - hex: rgb_formatHex, // Deprecated! Use color.formatHex. - formatHex: rgb_formatHex, - formatRgb: rgb_formatRgb, - toString: rgb_formatRgb - })); - - function rgb_formatHex() { - return "#" + hex(this.r) + hex(this.g) + hex(this.b); - } - - function rgb_formatRgb() { - var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); - return (a === 1 ? "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)) - + (a === 1 ? ")" : ", " + a + ")"); - } - - function hex(value) { - value = Math.max(0, Math.min(255, Math.round(value) || 0)); - return (value < 16 ? "0" : "") + value.toString(16); - } - - function hsla(h, s, l, a) { - if (a <= 0) h = s = l = NaN; - else if (l <= 0 || l >= 1) h = s = NaN; - else if (s <= 0) h = NaN; - return new Hsl(h, s, l, a); - } - - function hslConvert(o) { - if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity); - if (!(o instanceof Color)) o = color(o); - if (!o) return new Hsl; - if (o instanceof Hsl) return o; - o = o.rgb(); - var r = o.r / 255, - g = o.g / 255, - b = o.b / 255, - min = Math.min(r, g, b), - max = Math.max(r, g, b), - h = NaN, - s = max - min, - l = (max + min) / 2; - if (s) { - if (r === max) h = (g - b) / s + (g < b) * 6; - else if (g === max) h = (b - r) / s + 2; - else h = (r - g) / s + 4; - s /= l < 0.5 ? max + min : 2 - max - min; - h *= 60; - } else { - s = l > 0 && l < 1 ? 0 : h; - } - return new Hsl(h, s, l, o.opacity); - } - - function hsl(h, s, l, opacity) { - return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity); - } - - function Hsl(h, s, l, opacity) { - this.h = +h; - this.s = +s; - this.l = +l; - this.opacity = +opacity; - } - - define(Hsl, hsl, extend(Color, { - brighter: function(k) { - k = k == null ? brighter : Math.pow(brighter, k); - return new Hsl(this.h, this.s, this.l * k, this.opacity); - }, - darker: function(k) { - k = k == null ? darker : Math.pow(darker, k); - return new Hsl(this.h, this.s, this.l * k, this.opacity); - }, - rgb: function() { - var h = this.h % 360 + (this.h < 0) * 360, - s = isNaN(h) || isNaN(this.s) ? 0 : this.s, - l = this.l, - m2 = l + (l < 0.5 ? l : 1 - l) * s, - m1 = 2 * l - m2; - return new Rgb( - hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), - hsl2rgb(h, m1, m2), - hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), - 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 a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); - return (a === 1 ? "hsl(" : "hsla(") - + (this.h || 0) + ", " - + (this.s || 0) * 100 + "%, " - + (this.l || 0) * 100 + "%" - + (a === 1 ? ")" : ", " + a + ")"); - } - })); - - /* From FvD 13.37, CSS Color Module Level 3 */ - function hsl2rgb(h, m1, m2) { - return (h < 60 ? m1 + (m2 - m1) * h / 60 - : h < 180 ? m2 - : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 - : m1) * 255; - } - - var deg2rad = Math.PI / 180; - var rad2deg = 180 / Math.PI; - - // https://observablehq.com/@mbostock/lab-and-rgb - var K = 18, - Xn = 0.96422, - Yn = 1, - Zn = 0.82521, - t0 = 4 / 29, - t1 = 6 / 29, - t2 = 3 * t1 * t1, - t3 = t1 * t1 * t1; - - function labConvert(o) { - if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity); - if (o instanceof Hcl) return hcl2lab(o); - if (!(o instanceof Rgb)) o = rgbConvert(o); - var r = rgb2lrgb(o.r), - g = rgb2lrgb(o.g), - b = rgb2lrgb(o.b), - y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z; - if (r === g && g === b) x = z = y; else { - x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn); - z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn); - } - return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity); - } - - function lab(l, a, b, opacity) { - return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity); - } - - function Lab(l, a, b, opacity) { - this.l = +l; - this.a = +a; - this.b = +b; - this.opacity = +opacity; - } - - define(Lab, lab, extend(Color, { - brighter: function(k) { - return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity); - }, - darker: function(k) { - return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity); - }, - rgb: function() { - var y = (this.l + 16) / 116, - x = isNaN(this.a) ? y : y + this.a / 500, - z = isNaN(this.b) ? y : y - this.b / 200; - x = Xn * lab2xyz(x); - y = Yn * lab2xyz(y); - z = Zn * lab2xyz(z); - return new Rgb( - lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z), - lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z), - lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z), - this.opacity - ); - } - })); - - function xyz2lab(t) { - return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0; - } - - function lab2xyz(t) { - return t > t1 ? t * t * t : t2 * (t - t0); - } - - function lrgb2rgb(x) { - return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055); - } - - function rgb2lrgb(x) { - return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4); - } - - function hclConvert(o) { - if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity); - if (!(o instanceof Lab)) o = labConvert(o); - if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity); - var h = Math.atan2(o.b, o.a) * rad2deg; - return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity); - } - - function hcl(h, c, l, opacity) { - return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity); - } - - function Hcl(h, c, l, opacity) { - this.h = +h; - this.c = +c; - this.l = +l; - this.opacity = +opacity; - } - - function hcl2lab(o) { - if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity); - var h = o.h * deg2rad; - return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity); - } - - define(Hcl, hcl, extend(Color, { - brighter: function(k) { - return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity); - }, - darker: function(k) { - return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity); - }, - rgb: function() { - return hcl2lab(this).rgb(); - } - })); - - var A = -0.14861, - B = +1.78277, - C = -0.29227, - D = -0.90649, - E = +1.97294, - ED = E * D, - EB = E * B, - BC_DA = B * C - D * A; - - function cubehelixConvert(o) { - if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity); - if (!(o instanceof Rgb)) o = rgbConvert(o); - var r = o.r / 255, - g = o.g / 255, - b = o.b / 255, - l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB), - bl = b - l, - k = (E * (g - l) - C * bl) / D, - s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1 - h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN; - return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity); - } - - function cubehelix(h, s, l, opacity) { - return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity); - } - - function Cubehelix(h, s, l, opacity) { - this.h = +h; - this.s = +s; - this.l = +l; - this.opacity = +opacity; - } - - define(Cubehelix, cubehelix, extend(Color, { - brighter: function(k) { - k = k == null ? brighter : Math.pow(brighter, k); - return new Cubehelix(this.h, this.s, this.l * k, this.opacity); - }, - darker: function(k) { - k = k == null ? darker : Math.pow(darker, k); - return new Cubehelix(this.h, this.s, this.l * k, this.opacity); - }, - rgb: function() { - var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad, - l = +this.l, - a = isNaN(this.s) ? 0 : this.s * l * (1 - l), - cosh = Math.cos(h), - sinh = Math.sin(h); - return new Rgb( - 255 * (l + a * (A * cosh + B * sinh)), - 255 * (l + a * (C * cosh + D * sinh)), - 255 * (l + a * (E * cosh)), - this.opacity - ); - } - })); - - function constant(x) { - return function() { - return x; - }; - } - - function linear(a, d) { - return function(t) { - return a + t * d; - }; - } - - function exponential(a, b, y) { - return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) { - return Math.pow(a + t * b, y); - }; - } - - function gamma(y) { - return (y = +y) === 1 ? nogamma : function(a, b) { - return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a); - }; - } - - function nogamma(a, b) { - var d = b - a; - return d ? linear(a, d) : constant(isNaN(a) ? b : a); - } - - var rgb$1 = (function rgbGamma(y) { - var color = gamma(y); - - function rgb$1(start, end) { - var r = color((start = rgb(start)).r, (end = rgb(end)).r), - g = color(start.g, end.g), - b = color(start.b, end.b), - opacity = nogamma(start.opacity, end.opacity); - return function(t) { - start.r = r(t); - start.g = g(t); - start.b = b(t); - start.opacity = opacity(t); - return start + ""; - }; - } - - rgb$1.gamma = rgbGamma; - - return rgb$1; - })(1); - - function numberArray(a, b) { - if (!b) b = []; - var n = a ? Math.min(b.length, a.length) : 0, - c = b.slice(), - i; - return function(t) { - for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t; - return c; - }; - } - - function isNumberArray(x) { - return ArrayBuffer.isView(x) && !(x instanceof DataView); - } - - function genericArray(a, b) { - var nb = b ? b.length : 0, - na = a ? Math.min(nb, a.length) : 0, - x = new Array(na), - c = new Array(nb), - i; - - for (i = 0; i < na; ++i) x[i] = interpolate(a[i], b[i]); - for (; i < nb; ++i) c[i] = b[i]; - - return function(t) { - for (i = 0; i < na; ++i) c[i] = x[i](t); - return c; - }; - } - - function date(a, b) { - var d = new Date; - return a = +a, b = +b, function(t) { - return d.setTime(a * (1 - t) + b * t), d; - }; - } - - function interpolateNumber(a, b) { - return a = +a, b = +b, function(t) { - return a * (1 - t) + b * t; - }; - } - - function object(a, b) { - var i = {}, - c = {}, - k; - - if (a === null || typeof a !== "object") a = {}; - if (b === null || typeof b !== "object") b = {}; - - for (k in b) { - if (k in a) { - i[k] = interpolate(a[k], b[k]); - } else { - c[k] = b[k]; - } - } - - return function(t) { - for (k in i) c[k] = i[k](t); - return c; - }; - } - - var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, - reB = new RegExp(reA.source, "g"); - - function zero(b) { - return function() { - return b; - }; - } - - function one(b) { - return function(t) { - return b(t) + ""; - }; - } - - function string(a, b) { - var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b - am, // current match in a - bm, // current match in b - bs, // string preceding current number in b, if any - i = -1, // index in s - s = [], // string constants and placeholders - q = []; // number interpolators - - // Coerce inputs to strings. - a = a + "", b = b + ""; - - // Interpolate pairs of numbers in a & b. - while ((am = reA.exec(a)) - && (bm = reB.exec(b))) { - if ((bs = bm.index) > bi) { // a string precedes the next number in b - bs = b.slice(bi, bs); - if (s[i]) s[i] += bs; // coalesce with previous string - else s[++i] = bs; - } - if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match - if (s[i]) s[i] += bm; // coalesce with previous string - else s[++i] = bm; - } else { // interpolate non-matching numbers - s[++i] = null; - q.push({i: i, x: interpolateNumber(am, bm)}); - } - bi = reB.lastIndex; - } - - // Add remains of b. - if (bi < b.length) { - bs = b.slice(bi); - if (s[i]) s[i] += bs; // coalesce with previous string - else s[++i] = bs; - } - - // Special optimization for only a single match. - // Otherwise, interpolate each of the numbers and rejoin the string. - return s.length < 2 ? (q[0] - ? one(q[0].x) - : zero(b)) - : (b = q.length, function(t) { - for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t); - return s.join(""); - }); - } - - function interpolate(a, b) { - var t = typeof b, c; - return b == null || t === "boolean" ? constant(b) - : (t === "number" ? interpolateNumber - : t === "string" ? ((c = color(b)) ? (b = c, rgb$1) : string) - : b instanceof color ? rgb$1 - : b instanceof Date ? date - : isNumberArray(b) ? numberArray - : Array.isArray(b) ? genericArray - : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object - : interpolateNumber)(a, b); - } - - function interpolateRound(a, b) { - return a = +a, b = +b, function(t) { - return Math.round(a * (1 - t) + b * t); - }; - } - - function constant$1(x) { - return function() { - return x; - }; - } - - function number(x) { - return +x; - } - - var unit = [0, 1]; - - function identity(x) { - return x; - } - - function normalize(a, b) { - return (b -= (a = +a)) - ? function(x) { return (x - a) / b; } - : constant$1(isNaN(b) ? NaN : 0.5); - } - - function clamper(a, b) { - var t; - if (a > b) t = a, a = b, b = t; - return function(x) { return Math.max(a, Math.min(b, x)); }; - } - - // normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1]. - // interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b]. - function bimap(domain, range, interpolate) { - var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1]; - if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0); - else d0 = normalize(d0, d1), r0 = interpolate(r0, r1); - return function(x) { return r0(d0(x)); }; - } - - function polymap(domain, range, interpolate) { - var j = Math.min(domain.length, range.length) - 1, - d = new Array(j), - r = new Array(j), - i = -1; - - // Reverse descending domains. - if (domain[j] < domain[0]) { - domain = domain.slice().reverse(); - range = range.slice().reverse(); - } - - while (++i < j) { - d[i] = normalize(domain[i], domain[i + 1]); - r[i] = interpolate(range[i], range[i + 1]); - } - - return function(x) { - var i = bisectRight(domain, x, 1, j) - 1; - return r[i](d[i](x)); - }; - } - - function copy(source, target) { - return target - .domain(source.domain()) - .range(source.range()) - .interpolate(source.interpolate()) - .clamp(source.clamp()) - .unknown(source.unknown()); - } - - function transformer() { - var domain = unit, - range = unit, - interpolate$1 = interpolate, - transform, - untransform, - unknown, - clamp = identity, - piecewise, - output, - input; - - function rescale() { - var n = Math.min(domain.length, range.length); - if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]); - piecewise = n > 2 ? polymap : bimap; - output = input = null; - return scale; - } - - function scale(x) { - return isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate$1)))(transform(clamp(x))); - } - - scale.invert = function(y) { - return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y))); - }; - - scale.domain = function(_) { - return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice(); - }; - - scale.range = function(_) { - return arguments.length ? (range = Array.from(_), rescale()) : range.slice(); - }; - - scale.rangeRound = function(_) { - return range = Array.from(_), interpolate$1 = interpolateRound, rescale(); - }; - - scale.clamp = function(_) { - return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity; - }; - - scale.interpolate = function(_) { - return arguments.length ? (interpolate$1 = _, rescale()) : interpolate$1; - }; - - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : unknown; - }; - - return function(t, u) { - transform = t, untransform = u; - return rescale(); - }; - } - - function continuous() { - return transformer()(identity, identity); - } - - // Computes the decimal coefficient and exponent of the specified number x with - // significant digits p, where x is positive and p is in [1, 21] or undefined. - // For example, formatDecimal(1.23) returns ["123", 0]. - function formatDecimal(x, p) { - if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0) return null; // NaN, ±Infinity - var i, coefficient = x.slice(0, i); - - // The string returned by toExponential either has the form \d\.\d+e[-+]\d+ - // (e.g., 1.2e+3) or the form \de[-+]\d+ (e.g., 1e+3). - return [ - coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, - +x.slice(i + 1) - ]; - } - - function exponent(x) { - return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN; - } - - function formatGroup(grouping, thousands) { - return function(value, width) { - var i = value.length, - t = [], - j = 0, - g = grouping[0], - length = 0; - - while (i > 0 && g > 0) { - if (length + g + 1 > width) g = Math.max(1, width - length); - t.push(value.substring(i -= g, i + g)); - if ((length += g + 1) > width) break; - g = grouping[j = (j + 1) % grouping.length]; - } - - return t.reverse().join(thousands); - }; - } - - function formatNumerals(numerals) { - return function(value) { - return value.replace(/[0-9]/g, function(i) { - return numerals[+i]; - }); - }; - } - - // [[fill]align][sign][symbol][0][width][,][.precision][~][type] - var re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i; - - function formatSpecifier(specifier) { - if (!(match = re.exec(specifier))) throw new Error("invalid format: " + specifier); - var match; - return new FormatSpecifier({ - fill: match[1], - align: match[2], - sign: match[3], - symbol: match[4], - zero: match[5], - width: match[6], - comma: match[7], - precision: match[8] && match[8].slice(1), - trim: match[9], - type: match[10] - }); - } - - formatSpecifier.prototype = FormatSpecifier.prototype; // instanceof - - function FormatSpecifier(specifier) { - this.fill = specifier.fill === undefined ? " " : specifier.fill + ""; - this.align = specifier.align === undefined ? ">" : specifier.align + ""; - this.sign = specifier.sign === undefined ? "-" : specifier.sign + ""; - this.symbol = specifier.symbol === undefined ? "" : specifier.symbol + ""; - this.zero = !!specifier.zero; - this.width = specifier.width === undefined ? undefined : +specifier.width; - this.comma = !!specifier.comma; - this.precision = specifier.precision === undefined ? undefined : +specifier.precision; - this.trim = !!specifier.trim; - this.type = specifier.type === undefined ? "" : specifier.type + ""; - } - - FormatSpecifier.prototype.toString = function() { - return this.fill - + this.align - + this.sign - + this.symbol - + (this.zero ? "0" : "") - + (this.width === undefined ? "" : Math.max(1, this.width | 0)) - + (this.comma ? "," : "") - + (this.precision === undefined ? "" : "." + Math.max(0, this.precision | 0)) - + (this.trim ? "~" : "") - + this.type; - }; - - // Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k. - function formatTrim(s) { - out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) { - switch (s[i]) { - case ".": i0 = i1 = i; break; - case "0": if (i0 === 0) i0 = i; i1 = i; break; - default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break; - } - } - return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s; - } - - var prefixExponent; - - function formatPrefixAuto(x, p) { - var d = formatDecimal(x, p); - if (!d) return x + ""; - var coefficient = d[0], - exponent = d[1], - i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1, - n = coefficient.length; - return i === n ? coefficient - : i > n ? coefficient + new Array(i - n + 1).join("0") - : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i) - : "0." + new Array(1 - i).join("0") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y! - } - - function formatRounded(x, p) { - var d = formatDecimal(x, p); - if (!d) return x + ""; - var coefficient = d[0], - exponent = d[1]; - return exponent < 0 ? "0." + new Array(-exponent).join("0") + coefficient - : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + "." + coefficient.slice(exponent + 1) - : coefficient + new Array(exponent - coefficient.length + 2).join("0"); - } - - var formatTypes = { - "%": function(x, p) { return (x * 100).toFixed(p); }, - "b": function(x) { return Math.round(x).toString(2); }, - "c": function(x) { return x + ""; }, - "d": function(x) { return Math.round(x).toString(10); }, - "e": function(x, p) { return x.toExponential(p); }, - "f": function(x, p) { return x.toFixed(p); }, - "g": function(x, p) { return x.toPrecision(p); }, - "o": function(x) { return Math.round(x).toString(8); }, - "p": function(x, p) { return formatRounded(x * 100, p); }, - "r": formatRounded, - "s": formatPrefixAuto, - "X": function(x) { return Math.round(x).toString(16).toUpperCase(); }, - "x": function(x) { return Math.round(x).toString(16); } - }; - - function identity$1(x) { - return x; - } - - var map = Array.prototype.map, - prefixes = ["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"]; - - function formatLocale(locale) { - var group = locale.grouping === undefined || locale.thousands === undefined ? identity$1 : formatGroup(map.call(locale.grouping, Number), locale.thousands + ""), - currencyPrefix = locale.currency === undefined ? "" : locale.currency[0] + "", - currencySuffix = locale.currency === undefined ? "" : locale.currency[1] + "", - decimal = locale.decimal === undefined ? "." : locale.decimal + "", - numerals = locale.numerals === undefined ? identity$1 : formatNumerals(map.call(locale.numerals, String)), - percent = locale.percent === undefined ? "%" : locale.percent + "", - minus = locale.minus === undefined ? "-" : locale.minus + "", - nan = locale.nan === undefined ? "NaN" : locale.nan + ""; - - function newFormat(specifier) { - specifier = formatSpecifier(specifier); - - var fill = specifier.fill, - align = specifier.align, - sign = specifier.sign, - symbol = specifier.symbol, - zero = specifier.zero, - width = specifier.width, - comma = specifier.comma, - precision = specifier.precision, - trim = specifier.trim, - type = specifier.type; - - // The "n" type is an alias for ",g". - if (type === "n") comma = true, type = "g"; - - // The "" type, and any invalid type, is an alias for ".12~g". - else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = "g"; - - // If zero fill is specified, padding goes after sign and before digits. - if (zero || (fill === "0" && align === "=")) zero = true, fill = "0", align = "="; - - // Compute the prefix and suffix. - // For SI-prefix, the suffix is lazily computed. - var prefix = symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : "", - suffix = symbol === "$" ? currencySuffix : /[%p]/.test(type) ? percent : ""; - - // What format function should we use? - // Is this an integer type? - // Can this type generate exponential notation? - var formatType = formatTypes[type], - maybeSuffix = /[defgprs%]/.test(type); - - // Set the default precision if not specified, - // or clamp the specified precision to the supported range. - // For significant precision, it must be in [1, 21]. - // For fixed precision, it must be in [0, 20]. - precision = precision === undefined ? 6 - : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) - : Math.max(0, Math.min(20, precision)); - - function format(value) { - var valuePrefix = prefix, - valueSuffix = suffix, - i, n, c; - - if (type === "c") { - valueSuffix = formatType(value) + valueSuffix; - value = ""; - } else { - value = +value; - - // Determine the sign. -0 is not less than 0, but 1 / -0 is! - var valueNegative = value < 0 || 1 / value < 0; - - // Perform the initial formatting. - value = isNaN(value) ? nan : formatType(Math.abs(value), precision); - - // Trim insignificant zeros. - if (trim) value = formatTrim(value); - - // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign. - if (valueNegative && +value === 0 && sign !== "+") valueNegative = false; - - // Compute the prefix and suffix. - valuePrefix = (valueNegative ? (sign === "(" ? sign : minus) : sign === "-" || sign === "(" ? "" : sign) + valuePrefix; - valueSuffix = (type === "s" ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : ""); - - // Break the formatted value into the integer “value” part that can be - // grouped, and fractional or exponential “suffix” part that is not. - if (maybeSuffix) { - i = -1, n = value.length; - while (++i < n) { - if (c = value.charCodeAt(i), 48 > c || c > 57) { - valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix; - value = value.slice(0, i); - break; - } - } - } - } - - // If the fill character is not "0", grouping is applied before padding. - if (comma && !zero) value = group(value, Infinity); - - // Compute the padding. - var length = valuePrefix.length + value.length + valueSuffix.length, - padding = length < width ? new Array(width - length + 1).join(fill) : ""; - - // If the fill character is "0", grouping is applied after padding. - if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = ""; - - // Reconstruct the final output based on the desired alignment. - switch (align) { - case "<": value = valuePrefix + value + valueSuffix + padding; break; - case "=": value = valuePrefix + padding + value + valueSuffix; break; - case "^": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break; - default: value = padding + valuePrefix + value + valueSuffix; break; - } - - return numerals(value); - } - - format.toString = function() { - return specifier + ""; - }; - - return format; - } - - function formatPrefix(specifier, value) { - var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = "f", specifier)), - e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3, - k = Math.pow(10, -e), - prefix = prefixes[8 + e / 3]; - return function(value) { - return f(k * value) + prefix; - }; - } - - return { - format: newFormat, - formatPrefix: formatPrefix - }; - } - - var locale; - var format; - var formatPrefix; - - defaultLocale({ - decimal: ".", - thousands: ",", - grouping: [3], - currency: ["$", ""], - minus: "-" - }); - - function defaultLocale(definition) { - locale = formatLocale(definition); - format = locale.format; - formatPrefix = locale.formatPrefix; - return locale; - } - - function precisionFixed(step) { - return Math.max(0, -exponent(Math.abs(step))); - } - - function precisionPrefix(step, value) { - return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step))); - } - - function precisionRound(step, max) { - step = Math.abs(step), max = Math.abs(max) - step; - return Math.max(0, exponent(max) - exponent(step)) + 1; - } - - function tickFormat(start, stop, count, specifier) { - var step = tickStep(start, stop, count), - precision; - specifier = formatSpecifier(specifier == null ? ",f" : specifier); - switch (specifier.type) { - case "s": { - var value = Math.max(Math.abs(start), Math.abs(stop)); - if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision; - return formatPrefix(specifier, value); - } - case "": - case "e": - case "g": - case "p": - case "r": { - if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === "e"); - break; - } - case "f": - case "%": { - if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === "%") * 2; - break; - } - } - return format(specifier); - } - - function linearish(scale) { - var domain = scale.domain; - - scale.ticks = function(count) { - var d = domain(); - return ticks(d[0], d[d.length - 1], count == null ? 10 : count); - }; - - scale.tickFormat = function(count, specifier) { - var d = domain(); - return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier); - }; - - scale.nice = function(count) { - if (count == null) count = 10; - - var d = domain(), - i0 = 0, - i1 = d.length - 1, - start = d[i0], - stop = d[i1], - step; - - if (stop < start) { - step = start, start = stop, stop = step; - step = i0, i0 = i1, i1 = step; - } - - step = tickIncrement(start, stop, count); - - if (step > 0) { - start = Math.floor(start / step) * step; - stop = Math.ceil(stop / step) * step; - step = tickIncrement(start, stop, count); - } else if (step < 0) { - start = Math.ceil(start * step) / step; - stop = Math.floor(stop * step) / step; - step = tickIncrement(start, stop, count); - } - - if (step > 0) { - d[i0] = Math.floor(start / step) * step; - d[i1] = Math.ceil(stop / step) * step; - domain(d); - } else if (step < 0) { - d[i0] = Math.ceil(start * step) / step; - d[i1] = Math.floor(stop * step) / step; - domain(d); - } - - return scale; - }; - - return scale; - } - - function linear$1() { - var scale = continuous(); - - scale.copy = function() { - return copy(scale, linear$1()); - }; - - initRange.apply(scale, arguments); - - return linearish(scale); - } - - var t0$1 = new Date, - t1$1 = new Date; - - function newInterval(floori, offseti, count, field) { - - function interval(date) { - return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date; - } - - interval.floor = function(date) { - return floori(date = new Date(+date)), date; - }; - - interval.ceil = function(date) { - return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date; - }; - - interval.round = function(date) { - var d0 = interval(date), - d1 = interval.ceil(date); - return date - d0 < d1 - date ? d0 : d1; - }; - - interval.offset = function(date, step) { - return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date; - }; - - interval.range = function(start, stop, step) { - var range = [], previous; - start = interval.ceil(start); - step = step == null ? 1 : Math.floor(step); - if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date - do range.push(previous = new Date(+start)), offseti(start, step), floori(start); - while (previous < start && start < stop); - return range; - }; - - interval.filter = function(test) { - return newInterval(function(date) { - if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1); - }, function(date, step) { - if (date >= date) { - if (step < 0) while (++step <= 0) { - while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty - } else while (--step >= 0) { - while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty - } - } - }); - }; - - if (count) { - interval.count = function(start, end) { - t0$1.setTime(+start), t1$1.setTime(+end); - floori(t0$1), floori(t1$1); - return Math.floor(count(t0$1, t1$1)); - }; - - interval.every = function(step) { - step = Math.floor(step); - return !isFinite(step) || !(step > 0) ? null - : !(step > 1) ? interval - : interval.filter(field - ? function(d) { return field(d) % step === 0; } - : function(d) { return interval.count(0, d) % step === 0; }); - }; - } - - return interval; - } - - var millisecond = newInterval(function() { - // noop - }, function(date, step) { - date.setTime(+date + step); - }, function(start, end) { - return end - start; - }); - - // An optimized implementation for this simple case. - millisecond.every = function(k) { - k = Math.floor(k); - if (!isFinite(k) || !(k > 0)) return null; - if (!(k > 1)) return millisecond; - return newInterval(function(date) { - date.setTime(Math.floor(date / k) * k); - }, function(date, step) { - date.setTime(+date + step * k); - }, function(start, end) { - return (end - start) / k; - }); - }; - - var durationSecond = 1e3; - var durationMinute = 6e4; - var durationHour = 36e5; - var durationDay = 864e5; - var durationWeek = 6048e5; - - var second = newInterval(function(date) { - date.setTime(date - date.getMilliseconds()); - }, function(date, step) { - date.setTime(+date + step * durationSecond); - }, function(start, end) { - return (end - start) / durationSecond; - }, function(date) { - return date.getUTCSeconds(); - }); - - var minute = newInterval(function(date) { - date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond); - }, function(date, step) { - date.setTime(+date + step * durationMinute); - }, function(start, end) { - return (end - start) / durationMinute; - }, function(date) { - return date.getMinutes(); - }); - - var hour = newInterval(function(date) { - date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute); - }, function(date, step) { - date.setTime(+date + step * durationHour); - }, function(start, end) { - return (end - start) / durationHour; - }, function(date) { - return date.getHours(); - }); - - var day = newInterval(function(date) { - date.setHours(0, 0, 0, 0); - }, function(date, step) { - date.setDate(date.getDate() + step); - }, function(start, end) { - return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay; - }, function(date) { - return date.getDate() - 1; - }); - - function weekday(i) { - return newInterval(function(date) { - date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7); - date.setHours(0, 0, 0, 0); - }, function(date, step) { - date.setDate(date.getDate() + step * 7); - }, function(start, end) { - return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek; - }); - } - - var sunday = weekday(0); - var monday = weekday(1); - var tuesday = weekday(2); - var wednesday = weekday(3); - var thursday = weekday(4); - var friday = weekday(5); - var saturday = weekday(6); - - var month = newInterval(function(date) { - date.setDate(1); - date.setHours(0, 0, 0, 0); - }, function(date, step) { - date.setMonth(date.getMonth() + step); - }, function(start, end) { - return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12; - }, function(date) { - return date.getMonth(); - }); - - var year = newInterval(function(date) { - date.setMonth(0, 1); - date.setHours(0, 0, 0, 0); - }, function(date, step) { - date.setFullYear(date.getFullYear() + step); - }, function(start, end) { - return end.getFullYear() - start.getFullYear(); - }, function(date) { - return date.getFullYear(); - }); - - // An optimized implementation for this simple case. - year.every = function(k) { - return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) { - date.setFullYear(Math.floor(date.getFullYear() / k) * k); - date.setMonth(0, 1); - date.setHours(0, 0, 0, 0); - }, function(date, step) { - date.setFullYear(date.getFullYear() + step * k); - }); - }; - - var utcMinute = newInterval(function(date) { - date.setUTCSeconds(0, 0); - }, function(date, step) { - date.setTime(+date + step * durationMinute); - }, function(start, end) { - return (end - start) / durationMinute; - }, function(date) { - return date.getUTCMinutes(); - }); - - var utcHour = newInterval(function(date) { - date.setUTCMinutes(0, 0, 0); - }, function(date, step) { - date.setTime(+date + step * durationHour); - }, function(start, end) { - return (end - start) / durationHour; - }, function(date) { - return date.getUTCHours(); - }); - - var utcDay = newInterval(function(date) { - date.setUTCHours(0, 0, 0, 0); - }, function(date, step) { - date.setUTCDate(date.getUTCDate() + step); - }, function(start, end) { - return (end - start) / durationDay; - }, function(date) { - return date.getUTCDate() - 1; - }); - - function utcWeekday(i) { - return newInterval(function(date) { - date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7); - date.setUTCHours(0, 0, 0, 0); - }, function(date, step) { - date.setUTCDate(date.getUTCDate() + step * 7); - }, function(start, end) { - return (end - start) / durationWeek; - }); - } - - var utcSunday = utcWeekday(0); - var utcMonday = utcWeekday(1); - var utcTuesday = utcWeekday(2); - var utcWednesday = utcWeekday(3); - var utcThursday = utcWeekday(4); - var utcFriday = utcWeekday(5); - var utcSaturday = utcWeekday(6); - - var utcMonth = newInterval(function(date) { - date.setUTCDate(1); - date.setUTCHours(0, 0, 0, 0); - }, function(date, step) { - date.setUTCMonth(date.getUTCMonth() + step); - }, function(start, end) { - return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12; - }, function(date) { - return date.getUTCMonth(); - }); - - var utcYear = newInterval(function(date) { - date.setUTCMonth(0, 1); - date.setUTCHours(0, 0, 0, 0); - }, function(date, step) { - date.setUTCFullYear(date.getUTCFullYear() + step); - }, function(start, end) { - return end.getUTCFullYear() - start.getUTCFullYear(); - }, function(date) { - return date.getUTCFullYear(); - }); - - // An optimized implementation for this simple case. - utcYear.every = function(k) { - return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) { - date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k); - date.setUTCMonth(0, 1); - date.setUTCHours(0, 0, 0, 0); - }, function(date, step) { - date.setUTCFullYear(date.getUTCFullYear() + step * k); - }); - }; - - function localDate(d) { - if (0 <= d.y && d.y < 100) { - var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L); - date.setFullYear(d.y); - return date; - } - return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L); - } - - function utcDate(d) { - if (0 <= d.y && d.y < 100) { - var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L)); - date.setUTCFullYear(d.y); - return date; - } - return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L)); - } - - function newDate(y, m, d) { - return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0}; - } - - function formatLocale$1(locale) { - var locale_dateTime = locale.dateTime, - locale_date = locale.date, - locale_time = locale.time, - locale_periods = locale.periods, - locale_weekdays = locale.days, - locale_shortWeekdays = locale.shortDays, - locale_months = locale.months, - locale_shortMonths = locale.shortMonths; - - var periodRe = formatRe(locale_periods), - periodLookup = formatLookup(locale_periods), - weekdayRe = formatRe(locale_weekdays), - weekdayLookup = formatLookup(locale_weekdays), - shortWeekdayRe = formatRe(locale_shortWeekdays), - shortWeekdayLookup = formatLookup(locale_shortWeekdays), - monthRe = formatRe(locale_months), - monthLookup = formatLookup(locale_months), - shortMonthRe = formatRe(locale_shortMonths), - shortMonthLookup = formatLookup(locale_shortMonths); - - var formats = { - "a": formatShortWeekday, - "A": formatWeekday, - "b": formatShortMonth, - "B": formatMonth, - "c": null, - "d": formatDayOfMonth, - "e": formatDayOfMonth, - "f": formatMicroseconds, - "H": formatHour24, - "I": formatHour12, - "j": formatDayOfYear, - "L": formatMilliseconds, - "m": formatMonthNumber, - "M": formatMinutes, - "p": formatPeriod, - "q": formatQuarter, - "Q": formatUnixTimestamp, - "s": formatUnixTimestampSeconds, - "S": formatSeconds, - "u": formatWeekdayNumberMonday, - "U": formatWeekNumberSunday, - "V": formatWeekNumberISO, - "w": formatWeekdayNumberSunday, - "W": formatWeekNumberMonday, - "x": null, - "X": null, - "y": formatYear, - "Y": formatFullYear, - "Z": formatZone, - "%": formatLiteralPercent - }; - - var utcFormats = { - "a": formatUTCShortWeekday, - "A": formatUTCWeekday, - "b": formatUTCShortMonth, - "B": formatUTCMonth, - "c": null, - "d": formatUTCDayOfMonth, - "e": formatUTCDayOfMonth, - "f": formatUTCMicroseconds, - "H": formatUTCHour24, - "I": formatUTCHour12, - "j": formatUTCDayOfYear, - "L": formatUTCMilliseconds, - "m": formatUTCMonthNumber, - "M": formatUTCMinutes, - "p": formatUTCPeriod, - "q": formatUTCQuarter, - "Q": formatUnixTimestamp, - "s": formatUnixTimestampSeconds, - "S": formatUTCSeconds, - "u": formatUTCWeekdayNumberMonday, - "U": formatUTCWeekNumberSunday, - "V": formatUTCWeekNumberISO, - "w": formatUTCWeekdayNumberSunday, - "W": formatUTCWeekNumberMonday, - "x": null, - "X": null, - "y": formatUTCYear, - "Y": formatUTCFullYear, - "Z": formatUTCZone, - "%": formatLiteralPercent - }; - - var parses = { - "a": parseShortWeekday, - "A": parseWeekday, - "b": parseShortMonth, - "B": parseMonth, - "c": parseLocaleDateTime, - "d": parseDayOfMonth, - "e": parseDayOfMonth, - "f": parseMicroseconds, - "H": parseHour24, - "I": parseHour24, - "j": parseDayOfYear, - "L": parseMilliseconds, - "m": parseMonthNumber, - "M": parseMinutes, - "p": parsePeriod, - "q": parseQuarter, - "Q": parseUnixTimestamp, - "s": parseUnixTimestampSeconds, - "S": parseSeconds, - "u": parseWeekdayNumberMonday, - "U": parseWeekNumberSunday, - "V": parseWeekNumberISO, - "w": parseWeekdayNumberSunday, - "W": parseWeekNumberMonday, - "x": parseLocaleDate, - "X": parseLocaleTime, - "y": parseYear, - "Y": parseFullYear, - "Z": parseZone, - "%": parseLiteralPercent - }; - - // These recursive directive definitions must be deferred. - formats.x = newFormat(locale_date, formats); - formats.X = newFormat(locale_time, formats); - formats.c = newFormat(locale_dateTime, formats); - utcFormats.x = newFormat(locale_date, utcFormats); - utcFormats.X = newFormat(locale_time, utcFormats); - utcFormats.c = newFormat(locale_dateTime, utcFormats); - - function newFormat(specifier, formats) { - return function(date) { - var string = [], - i = -1, - j = 0, - n = specifier.length, - c, - pad, - format; - - if (!(date instanceof Date)) date = new Date(+date); - - while (++i < n) { - if (specifier.charCodeAt(i) === 37) { - string.push(specifier.slice(j, i)); - if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i); - else pad = c === "e" ? " " : "0"; - if (format = formats[c]) c = format(date, pad); - string.push(c); - j = i + 1; - } - } - - string.push(specifier.slice(j, i)); - return string.join(""); - }; - } - - function newParse(specifier, Z) { - return function(string) { - var d = newDate(1900, undefined, 1), - i = parseSpecifier(d, specifier, string += "", 0), - week, day$1; - if (i != string.length) return null; - - // If a UNIX timestamp is specified, return it. - if ("Q" in d) return new Date(d.Q); - if ("s" in d) return new Date(d.s * 1000 + ("L" in d ? d.L : 0)); - - // If this is utcParse, never use the local timezone. - if (Z && !("Z" in d)) d.Z = 0; - - // The am-pm flag is 0 for AM, and 1 for PM. - if ("p" in d) d.H = d.H % 12 + d.p * 12; - - // If the month was not specified, inherit from the quarter. - if (d.m === undefined) d.m = "q" in d ? d.q : 0; - - // Convert day-of-week and week-of-year to day-of-year. - if ("V" in d) { - if (d.V < 1 || d.V > 53) return null; - if (!("w" in d)) d.w = 1; - if ("Z" in d) { - week = utcDate(newDate(d.y, 0, 1)), day$1 = week.getUTCDay(); - week = day$1 > 4 || day$1 === 0 ? utcMonday.ceil(week) : utcMonday(week); - week = utcDay.offset(week, (d.V - 1) * 7); - d.y = week.getUTCFullYear(); - d.m = week.getUTCMonth(); - d.d = week.getUTCDate() + (d.w + 6) % 7; - } else { - week = localDate(newDate(d.y, 0, 1)), day$1 = week.getDay(); - week = day$1 > 4 || day$1 === 0 ? monday.ceil(week) : monday(week); - week = day.offset(week, (d.V - 1) * 7); - d.y = week.getFullYear(); - d.m = week.getMonth(); - d.d = week.getDate() + (d.w + 6) % 7; - } - } else if ("W" in d || "U" in d) { - if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0; - day$1 = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay(); - d.m = 0; - d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day$1 + 5) % 7 : d.w + d.U * 7 - (day$1 + 6) % 7; - } - - // If a time zone is specified, all fields are interpreted as UTC and then - // offset according to the specified time zone. - if ("Z" in d) { - d.H += d.Z / 100 | 0; - d.M += d.Z % 100; - return utcDate(d); - } - - // Otherwise, all fields are in local time. - return localDate(d); - }; - } - - function parseSpecifier(d, specifier, string, j) { - var i = 0, - n = specifier.length, - m = string.length, - c, - parse; - - while (i < n) { - if (j >= m) return -1; - c = specifier.charCodeAt(i++); - if (c === 37) { - c = specifier.charAt(i++); - parse = parses[c in pads ? specifier.charAt(i++) : c]; - if (!parse || ((j = parse(d, string, j)) < 0)) return -1; - } else if (c != string.charCodeAt(j++)) { - return -1; - } - } - - return j; - } - - function parsePeriod(d, string, i) { - var n = periodRe.exec(string.slice(i)); - return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1; - } - - function parseShortWeekday(d, string, i) { - var n = shortWeekdayRe.exec(string.slice(i)); - return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1; - } - - function parseWeekday(d, string, i) { - var n = weekdayRe.exec(string.slice(i)); - return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1; - } - - function parseShortMonth(d, string, i) { - var n = shortMonthRe.exec(string.slice(i)); - return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1; - } - - function parseMonth(d, string, i) { - var n = monthRe.exec(string.slice(i)); - return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1; - } - - function parseLocaleDateTime(d, string, i) { - return parseSpecifier(d, locale_dateTime, string, i); - } - - function parseLocaleDate(d, string, i) { - return parseSpecifier(d, locale_date, string, i); - } - - function parseLocaleTime(d, string, i) { - return parseSpecifier(d, locale_time, string, i); - } - - function formatShortWeekday(d) { - return locale_shortWeekdays[d.getDay()]; - } - - function formatWeekday(d) { - return locale_weekdays[d.getDay()]; - } - - function formatShortMonth(d) { - return locale_shortMonths[d.getMonth()]; - } - - function formatMonth(d) { - return locale_months[d.getMonth()]; - } - - function formatPeriod(d) { - return locale_periods[+(d.getHours() >= 12)]; - } - - function formatQuarter(d) { - return 1 + ~~(d.getMonth() / 3); - } - - function formatUTCShortWeekday(d) { - return locale_shortWeekdays[d.getUTCDay()]; - } - - function formatUTCWeekday(d) { - return locale_weekdays[d.getUTCDay()]; - } - - function formatUTCShortMonth(d) { - return locale_shortMonths[d.getUTCMonth()]; - } - - function formatUTCMonth(d) { - return locale_months[d.getUTCMonth()]; - } - - function formatUTCPeriod(d) { - return locale_periods[+(d.getUTCHours() >= 12)]; - } - - function formatUTCQuarter(d) { - return 1 + ~~(d.getUTCMonth() / 3); - } - - return { - format: function(specifier) { - var f = newFormat(specifier += "", formats); - f.toString = function() { return specifier; }; - return f; - }, - parse: function(specifier) { - var p = newParse(specifier += "", false); - p.toString = function() { return specifier; }; - return p; - }, - utcFormat: function(specifier) { - var f = newFormat(specifier += "", utcFormats); - f.toString = function() { return specifier; }; - return f; - }, - utcParse: function(specifier) { - var p = newParse(specifier += "", true); - p.toString = function() { return specifier; }; - return p; - } - }; - } - - var pads = {"-": "", "_": " ", "0": "0"}, - numberRe = /^\s*\d+/, // note: ignores next directive - percentRe = /^%/, - requoteRe = /[\\^$*+?|[\]().{}]/g; - - function pad(value, fill, width) { - var sign = value < 0 ? "-" : "", - string = (sign ? -value : value) + "", - length = string.length; - return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string); - } - - function requote(s) { - return s.replace(requoteRe, "\\$&"); - } - - function formatRe(names) { - return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i"); - } - - function formatLookup(names) { - var map = {}, i = -1, n = names.length; - while (++i < n) map[names[i].toLowerCase()] = i; - return map; - } - - function parseWeekdayNumberSunday(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 1)); - return n ? (d.w = +n[0], i + n[0].length) : -1; - } - - function parseWeekdayNumberMonday(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 1)); - return n ? (d.u = +n[0], i + n[0].length) : -1; - } - - function parseWeekNumberSunday(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.U = +n[0], i + n[0].length) : -1; - } - - function parseWeekNumberISO(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.V = +n[0], i + n[0].length) : -1; - } - - function parseWeekNumberMonday(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.W = +n[0], i + n[0].length) : -1; - } - - function parseFullYear(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 4)); - return n ? (d.y = +n[0], i + n[0].length) : -1; - } - - function parseYear(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1; - } - - function parseZone(d, string, i) { - var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6)); - return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1; - } - - function parseQuarter(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 1)); - return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1; - } - - function parseMonthNumber(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.m = n[0] - 1, i + n[0].length) : -1; - } - - function parseDayOfMonth(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.d = +n[0], i + n[0].length) : -1; - } - - function parseDayOfYear(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 3)); - return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1; - } - - function parseHour24(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.H = +n[0], i + n[0].length) : -1; - } - - function parseMinutes(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.M = +n[0], i + n[0].length) : -1; - } - - function parseSeconds(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.S = +n[0], i + n[0].length) : -1; - } - - function parseMilliseconds(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 3)); - return n ? (d.L = +n[0], i + n[0].length) : -1; - } - - function parseMicroseconds(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 6)); - return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1; - } - - function parseLiteralPercent(d, string, i) { - var n = percentRe.exec(string.slice(i, i + 1)); - return n ? i + n[0].length : -1; - } - - function parseUnixTimestamp(d, string, i) { - var n = numberRe.exec(string.slice(i)); - return n ? (d.Q = +n[0], i + n[0].length) : -1; - } - - function parseUnixTimestampSeconds(d, string, i) { - var n = numberRe.exec(string.slice(i)); - return n ? (d.s = +n[0], i + n[0].length) : -1; - } - - function formatDayOfMonth(d, p) { - return pad(d.getDate(), p, 2); - } - - function formatHour24(d, p) { - return pad(d.getHours(), p, 2); - } - - function formatHour12(d, p) { - return pad(d.getHours() % 12 || 12, p, 2); - } - - function formatDayOfYear(d, p) { - return pad(1 + day.count(year(d), d), p, 3); - } - - function formatMilliseconds(d, p) { - return pad(d.getMilliseconds(), p, 3); - } - - function formatMicroseconds(d, p) { - return formatMilliseconds(d, p) + "000"; - } - - function formatMonthNumber(d, p) { - return pad(d.getMonth() + 1, p, 2); - } - - function formatMinutes(d, p) { - return pad(d.getMinutes(), p, 2); - } - - function formatSeconds(d, p) { - return pad(d.getSeconds(), p, 2); - } - - function formatWeekdayNumberMonday(d) { - var day = d.getDay(); - return day === 0 ? 7 : day; - } - - function formatWeekNumberSunday(d, p) { - return pad(sunday.count(year(d) - 1, d), p, 2); - } - - function formatWeekNumberISO(d, p) { - var day = d.getDay(); - d = (day >= 4 || day === 0) ? thursday(d) : thursday.ceil(d); - return pad(thursday.count(year(d), d) + (year(d).getDay() === 4), p, 2); - } - - function formatWeekdayNumberSunday(d) { - return d.getDay(); - } - - function formatWeekNumberMonday(d, p) { - return pad(monday.count(year(d) - 1, d), p, 2); - } - - function formatYear(d, p) { - return pad(d.getFullYear() % 100, p, 2); - } - - function formatFullYear(d, p) { - return pad(d.getFullYear() % 10000, p, 4); - } - - function formatZone(d) { - var z = d.getTimezoneOffset(); - return (z > 0 ? "-" : (z *= -1, "+")) - + pad(z / 60 | 0, "0", 2) - + pad(z % 60, "0", 2); - } - - function formatUTCDayOfMonth(d, p) { - return pad(d.getUTCDate(), p, 2); - } - - function formatUTCHour24(d, p) { - return pad(d.getUTCHours(), p, 2); - } - - function formatUTCHour12(d, p) { - return pad(d.getUTCHours() % 12 || 12, p, 2); - } - - function formatUTCDayOfYear(d, p) { - return pad(1 + utcDay.count(utcYear(d), d), p, 3); - } - - function formatUTCMilliseconds(d, p) { - return pad(d.getUTCMilliseconds(), p, 3); - } - - function formatUTCMicroseconds(d, p) { - return formatUTCMilliseconds(d, p) + "000"; - } - - function formatUTCMonthNumber(d, p) { - return pad(d.getUTCMonth() + 1, p, 2); - } - - function formatUTCMinutes(d, p) { - return pad(d.getUTCMinutes(), p, 2); - } - - function formatUTCSeconds(d, p) { - return pad(d.getUTCSeconds(), p, 2); - } - - function formatUTCWeekdayNumberMonday(d) { - var dow = d.getUTCDay(); - return dow === 0 ? 7 : dow; - } - - function formatUTCWeekNumberSunday(d, p) { - return pad(utcSunday.count(utcYear(d) - 1, d), p, 2); - } - - function formatUTCWeekNumberISO(d, p) { - var day = d.getUTCDay(); - d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d); - return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2); - } - - function formatUTCWeekdayNumberSunday(d) { - return d.getUTCDay(); - } - - function formatUTCWeekNumberMonday(d, p) { - return pad(utcMonday.count(utcYear(d) - 1, d), p, 2); - } - - function formatUTCYear(d, p) { - return pad(d.getUTCFullYear() % 100, p, 2); - } - - function formatUTCFullYear(d, p) { - return pad(d.getUTCFullYear() % 10000, p, 4); - } - - function formatUTCZone() { - return "+0000"; - } - - function formatLiteralPercent() { - return "%"; - } - - function formatUnixTimestamp(d) { - return +d; - } - - function formatUnixTimestampSeconds(d) { - return Math.floor(+d / 1000); - } - - var locale$1; - var timeFormat; - var timeParse; - var utcFormat; - var utcParse; - - defaultLocale$1({ - 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"] - }); - - function defaultLocale$1(definition) { - locale$1 = formatLocale$1(definition); - timeFormat = locale$1.format; - timeParse = locale$1.parse; - utcFormat = locale$1.utcFormat; - utcParse = locale$1.utcParse; - return locale$1; - } - - var isoSpecifier = "%Y-%m-%dT%H:%M:%S.%LZ"; - - function formatIsoNative(date) { - return date.toISOString(); - } - - var formatIso = Date.prototype.toISOString - ? formatIsoNative - : utcFormat(isoSpecifier); - - function parseIsoNative(string) { - var date = new Date(string); - return isNaN(date) ? null : date; - } - - var parseIso = +new Date("2000-01-01T00:00:00.000Z") - ? parseIsoNative - : utcParse(isoSpecifier); - - var noop = {value: function() {}}; - - function dispatch() { - for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) { - if (!(t = arguments[i] + "") || (t in _) || /[\s.]/.test(t)) throw new Error("illegal type: " + t); - _[t] = []; - } - return new Dispatch(_); - } - - function Dispatch(_) { - this._ = _; - } - - function parseTypenames(typenames, types) { - return typenames.trim().split(/^|\s+/).map(function(t) { - var name = "", i = t.indexOf("."); - if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i); - if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t); - return {type: t, name: name}; - }); - } - - Dispatch.prototype = dispatch.prototype = { - constructor: Dispatch, - on: function(typename, callback) { - var _ = this._, - T = parseTypenames(typename + "", _), - t, - i = -1, - n = T.length; - - // If no callback was specified, return the callback of the given type and name. - if (arguments.length < 2) { - while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t; - return; - } - - // If a type was specified, set the callback for the given type and name. - // Otherwise, if a null callback was specified, remove callbacks of the given name. - if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback); - while (++i < n) { - if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback); - else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null); - } - - return this; - }, - copy: function() { - var copy = {}, _ = this._; - for (var t in _) copy[t] = _[t].slice(); - return new Dispatch(copy); - }, - call: function(type, that) { - if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2]; - if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type); - for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args); - }, - apply: function(type, that, args) { - if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type); - for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args); - } - }; - - function get(type, name) { - for (var i = 0, n = type.length, c; i < n; ++i) { - if ((c = type[i]).name === name) { - return c.value; - } - } - } - - function set(type, name, callback) { - for (var i = 0, n = type.length; i < n; ++i) { - if (type[i].name === name) { - type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1)); - break; - } - } - if (callback != null) type.push({name: name, value: callback}); - return type; - } - - var xhtml = "http://www.w3.org/1999/xhtml"; - - var namespaces = { - svg: "http://www.w3.org/2000/svg", - xhtml: xhtml, - xlink: "http://www.w3.org/1999/xlink", - xml: "http://www.w3.org/XML/1998/namespace", - xmlns: "http://www.w3.org/2000/xmlns/" - }; - - function namespace(name) { - var prefix = name += "", i = prefix.indexOf(":"); - if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1); - return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; - } - - function creatorInherit(name) { - return function() { - var document = this.ownerDocument, - uri = this.namespaceURI; - return uri === xhtml && document.documentElement.namespaceURI === xhtml - ? document.createElement(name) - : document.createElementNS(uri, name); - }; - } - - function creatorFixed(fullname) { - return function() { - return this.ownerDocument.createElementNS(fullname.space, fullname.local); - }; - } - - function creator(name) { - var fullname = namespace(name); - return (fullname.local - ? creatorFixed - : creatorInherit)(fullname); - } - - function none() {} - - function selector(selector) { - return selector == null ? none : function() { - return this.querySelector(selector); - }; - } - - function selection_select(select) { - if (typeof select !== "function") select = selector(select); - - for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { - if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { - if ("__data__" in node) subnode.__data__ = node.__data__; - subgroup[i] = subnode; - } - } - } - - return new Selection(subgroups, this._parents); - } - - function empty() { - return []; - } - - function selectorAll(selector) { - return selector == null ? empty : function() { - return this.querySelectorAll(selector); - }; - } - - function selection_selectAll(select) { - if (typeof select !== "function") select = selectorAll(select); - - for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { - if (node = group[i]) { - subgroups.push(select.call(node, node.__data__, i, group)); - parents.push(node); - } - } - } - - return new Selection(subgroups, parents); - } - - function matcher(selector) { - return function() { - return this.matches(selector); - }; - } - - function selection_filter(match) { - if (typeof match !== "function") match = matcher(match); - - for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { - if ((node = group[i]) && match.call(node, node.__data__, i, group)) { - subgroup.push(node); - } - } - } - - return new Selection(subgroups, this._parents); - } - - function sparse(update) { - return new Array(update.length); - } - - function selection_enter() { - return new Selection(this._enter || this._groups.map(sparse), this._parents); - } - - function EnterNode(parent, datum) { - this.ownerDocument = parent.ownerDocument; - this.namespaceURI = parent.namespaceURI; - this._next = null; - this._parent = parent; - this.__data__ = datum; - } - - EnterNode.prototype = { - constructor: EnterNode, - appendChild: function(child) { return this._parent.insertBefore(child, this._next); }, - insertBefore: function(child, next) { return this._parent.insertBefore(child, next); }, - querySelector: function(selector) { return this._parent.querySelector(selector); }, - querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); } - }; - - function constant$2(x) { - return function() { - return x; - }; - } - - var keyPrefix = "$"; // Protect against keys like “__proto__”. - - function bindIndex(parent, group, enter, update, exit, data) { - var i = 0, - node, - groupLength = group.length, - dataLength = data.length; - - // Put any non-null nodes that fit into update. - // Put any null nodes into enter. - // Put any remaining data into enter. - for (; i < dataLength; ++i) { - if (node = group[i]) { - node.__data__ = data[i]; - update[i] = node; - } else { - enter[i] = new EnterNode(parent, data[i]); - } - } - - // Put any non-null nodes that don’t fit into exit. - for (; i < groupLength; ++i) { - if (node = group[i]) { - exit[i] = node; - } - } - } - - function bindKey(parent, group, enter, update, exit, data, key) { - var i, - node, - nodeByKeyValue = {}, - groupLength = group.length, - dataLength = data.length, - keyValues = new Array(groupLength), - keyValue; - - // Compute the key for each node. - // If multiple nodes have the same key, the duplicates are added to exit. - for (i = 0; i < groupLength; ++i) { - if (node = group[i]) { - keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group); - if (keyValue in nodeByKeyValue) { - exit[i] = node; - } else { - nodeByKeyValue[keyValue] = node; - } - } - } - - // Compute the key for each datum. - // If there a node associated with this key, join and add it to update. - // If there is not (or the key is a duplicate), add it to enter. - for (i = 0; i < dataLength; ++i) { - keyValue = keyPrefix + key.call(parent, data[i], i, data); - if (node = nodeByKeyValue[keyValue]) { - update[i] = node; - node.__data__ = data[i]; - nodeByKeyValue[keyValue] = null; - } else { - enter[i] = new EnterNode(parent, data[i]); - } - } - - // Add any remaining nodes that were not bound to data to exit. - for (i = 0; i < groupLength; ++i) { - if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) { - exit[i] = node; - } - } - } - - function selection_data(value, key) { - if (!value) { - data = new Array(this.size()), j = -1; - this.each(function(d) { data[++j] = d; }); - return data; - } - - var bind = key ? bindKey : bindIndex, - parents = this._parents, - groups = this._groups; - - if (typeof value !== "function") value = constant$2(value); - - for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) { - var parent = parents[j], - group = groups[j], - groupLength = group.length, - data = value.call(parent, parent && parent.__data__, j, parents), - dataLength = data.length, - enterGroup = enter[j] = new Array(dataLength), - updateGroup = update[j] = new Array(dataLength), - exitGroup = exit[j] = new Array(groupLength); - - bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); - - // Now connect the enter nodes to their following update node, such that - // appendChild can insert the materialized enter node before this node, - // rather than at the end of the parent node. - for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) { - if (previous = enterGroup[i0]) { - if (i0 >= i1) i1 = i0 + 1; - while (!(next = updateGroup[i1]) && ++i1 < dataLength); - previous._next = next || null; - } - } - } - - update = new Selection(update, parents); - update._enter = enter; - update._exit = exit; - return update; - } - - function selection_exit() { - return new Selection(this._exit || this._groups.map(sparse), this._parents); - } - - function selection_join(onenter, onupdate, onexit) { - var enter = this.enter(), update = this, exit = this.exit(); - enter = typeof onenter === "function" ? onenter(enter) : enter.append(onenter + ""); - if (onupdate != null) update = onupdate(update); - if (onexit == null) exit.remove(); else onexit(exit); - return enter && update ? enter.merge(update).order() : update; - } - - function selection_merge(selection) { - - for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { - for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { - if (node = group0[i] || group1[i]) { - merge[i] = node; - } - } - } - - for (; j < m0; ++j) { - merges[j] = groups0[j]; - } - - return new Selection(merges, this._parents); - } - - function selection_order() { - - for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) { - for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) { - if (node = group[i]) { - if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next); - next = node; - } - } - } - - return this; - } - - function selection_sort(compare) { - if (!compare) compare = ascending$1; - - function compareNode(a, b) { - return a && b ? compare(a.__data__, b.__data__) : !a - !b; - } - - for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) { - if (node = group[i]) { - sortgroup[i] = node; - } - } - sortgroup.sort(compareNode); - } - - return new Selection(sortgroups, this._parents).order(); - } - - function ascending$1(a, b) { - return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; - } - - function selection_call() { - var callback = arguments[0]; - arguments[0] = this; - callback.apply(null, arguments); - return this; - } - - function selection_nodes() { - var nodes = new Array(this.size()), i = -1; - this.each(function() { nodes[++i] = this; }); - return nodes; - } - - function selection_node() { - - for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { - for (var group = groups[j], i = 0, n = group.length; i < n; ++i) { - var node = group[i]; - if (node) return node; - } - } - - return null; - } - - function selection_size() { - var size = 0; - this.each(function() { ++size; }); - return size; - } - - function selection_empty() { - return !this.node(); - } - - function selection_each(callback) { - - for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { - for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { - if (node = group[i]) callback.call(node, node.__data__, i, group); - } - } - - return this; - } - - function attrRemove(name) { - return function() { - this.removeAttribute(name); - }; - } - - function attrRemoveNS(fullname) { - return function() { - this.removeAttributeNS(fullname.space, fullname.local); - }; - } - - function attrConstant(name, value) { - return function() { - this.setAttribute(name, value); - }; - } - - function attrConstantNS(fullname, value) { - return function() { - this.setAttributeNS(fullname.space, fullname.local, value); - }; - } - - function attrFunction(name, value) { - return function() { - var v = value.apply(this, arguments); - if (v == null) this.removeAttribute(name); - else this.setAttribute(name, v); - }; - } - - function attrFunctionNS(fullname, value) { - return function() { - var v = value.apply(this, arguments); - if (v == null) this.removeAttributeNS(fullname.space, fullname.local); - else this.setAttributeNS(fullname.space, fullname.local, v); - }; - } - - function selection_attr(name, value) { - var fullname = namespace(name); - - if (arguments.length < 2) { - var node = this.node(); - return fullname.local - ? node.getAttributeNS(fullname.space, fullname.local) - : node.getAttribute(fullname); - } - - return this.each((value == null - ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === "function" - ? (fullname.local ? attrFunctionNS : attrFunction) - : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value)); - } - - function defaultView(node) { - return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node - || (node.document && node) // node is a Window - || node.defaultView; // node is a Document - } - - function styleRemove(name) { - return function() { - this.style.removeProperty(name); - }; - } - - function styleConstant(name, value, priority) { - return function() { - this.style.setProperty(name, value, priority); - }; - } - - function styleFunction(name, value, priority) { - return function() { - var v = value.apply(this, arguments); - if (v == null) this.style.removeProperty(name); - else this.style.setProperty(name, v, priority); - }; - } - - function selection_style(name, value, priority) { - return arguments.length > 1 - ? this.each((value == null - ? styleRemove : typeof value === "function" - ? styleFunction - : styleConstant)(name, value, priority == null ? "" : priority)) - : styleValue(this.node(), name); - } - - function styleValue(node, name) { - return node.style.getPropertyValue(name) - || defaultView(node).getComputedStyle(node, null).getPropertyValue(name); - } - - function propertyRemove(name) { - return function() { - delete this[name]; - }; - } - - function propertyConstant(name, value) { - return function() { - this[name] = value; - }; - } - - function propertyFunction(name, value) { - return function() { - var v = value.apply(this, arguments); - if (v == null) delete this[name]; - else this[name] = v; - }; - } - - function selection_property(name, value) { - return arguments.length > 1 - ? this.each((value == null - ? propertyRemove : typeof value === "function" - ? propertyFunction - : propertyConstant)(name, value)) - : this.node()[name]; - } - - function classArray(string) { - return string.trim().split(/^|\s+/); - } - - function classList(node) { - return node.classList || new ClassList(node); - } - - function ClassList(node) { - this._node = node; - this._names = classArray(node.getAttribute("class") || ""); - } - - ClassList.prototype = { - add: function(name) { - var i = this._names.indexOf(name); - if (i < 0) { - this._names.push(name); - this._node.setAttribute("class", this._names.join(" ")); - } - }, - remove: function(name) { - var i = this._names.indexOf(name); - if (i >= 0) { - this._names.splice(i, 1); - this._node.setAttribute("class", this._names.join(" ")); - } - }, - contains: function(name) { - return this._names.indexOf(name) >= 0; - } - }; - - function classedAdd(node, names) { - var list = classList(node), i = -1, n = names.length; - while (++i < n) list.add(names[i]); - } - - function classedRemove(node, names) { - var list = classList(node), i = -1, n = names.length; - while (++i < n) list.remove(names[i]); - } - - function classedTrue(names) { - return function() { - classedAdd(this, names); - }; - } - - function classedFalse(names) { - return function() { - classedRemove(this, names); - }; - } - - function classedFunction(names, value) { - return function() { - (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names); - }; - } - - function selection_classed(name, value) { - var names = classArray(name + ""); - - if (arguments.length < 2) { - var list = classList(this.node()), i = -1, n = names.length; - while (++i < n) if (!list.contains(names[i])) return false; - return true; - } - - return this.each((typeof value === "function" - ? classedFunction : value - ? classedTrue - : classedFalse)(names, value)); - } - - function textRemove() { - this.textContent = ""; - } - - function textConstant(value) { - return function() { - this.textContent = value; - }; - } - - function textFunction(value) { - return function() { - var v = value.apply(this, arguments); - this.textContent = v == null ? "" : v; - }; - } - - function selection_text(value) { - return arguments.length - ? this.each(value == null - ? textRemove : (typeof value === "function" - ? textFunction - : textConstant)(value)) - : this.node().textContent; - } - - function htmlRemove() { - this.innerHTML = ""; - } - - function htmlConstant(value) { - return function() { - this.innerHTML = value; - }; - } - - function htmlFunction(value) { - return function() { - var v = value.apply(this, arguments); - this.innerHTML = v == null ? "" : v; - }; - } - - function selection_html(value) { - return arguments.length - ? this.each(value == null - ? htmlRemove : (typeof value === "function" - ? htmlFunction - : htmlConstant)(value)) - : this.node().innerHTML; - } - - function raise() { - if (this.nextSibling) this.parentNode.appendChild(this); - } - - function selection_raise() { - return this.each(raise); - } - - function lower() { - if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild); - } - - function selection_lower() { - return this.each(lower); - } - - function selection_append(name) { - var create = typeof name === "function" ? name : creator(name); - return this.select(function() { - return this.appendChild(create.apply(this, arguments)); - }); - } - - function constantNull() { - return null; - } - - function selection_insert(name, before) { - var create = typeof name === "function" ? name : creator(name), - select = before == null ? constantNull : typeof before === "function" ? before : selector(before); - return this.select(function() { - return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null); - }); - } - - function remove() { - var parent = this.parentNode; - if (parent) parent.removeChild(this); - } - - function selection_remove() { - return this.each(remove); - } - - function selection_cloneShallow() { - var clone = this.cloneNode(false), parent = this.parentNode; - return parent ? parent.insertBefore(clone, this.nextSibling) : clone; - } - - function selection_cloneDeep() { - var clone = this.cloneNode(true), parent = this.parentNode; - return parent ? parent.insertBefore(clone, this.nextSibling) : clone; - } - - function selection_clone(deep) { - return this.select(deep ? selection_cloneDeep : selection_cloneShallow); - } - - function selection_datum(value) { - return arguments.length - ? this.property("__data__", value) - : this.node().__data__; - } - - var filterEvents = {}; - - var event = null; - - if (typeof document !== "undefined") { - var element = document.documentElement; - if (!("onmouseenter" in element)) { - filterEvents = {mouseenter: "mouseover", mouseleave: "mouseout"}; - } - } - - function filterContextListener(listener, index, group) { - listener = contextListener(listener, index, group); - return function(event) { - var related = event.relatedTarget; - if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) { - listener.call(this, event); - } - }; - } - - function contextListener(listener, index, group) { - return function(event1) { - var event0 = event; // Events can be reentrant (e.g., focus). - event = event1; - try { - listener.call(this, this.__data__, index, group); - } finally { - event = event0; - } - }; - } - - function parseTypenames$1(typenames) { - return typenames.trim().split(/^|\s+/).map(function(t) { - var name = "", i = t.indexOf("."); - if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i); - return {type: t, name: name}; - }); - } - - function onRemove(typename) { - return function() { - var on = this.__on; - if (!on) return; - for (var j = 0, i = -1, m = on.length, o; j < m; ++j) { - if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) { - this.removeEventListener(o.type, o.listener, o.capture); - } else { - on[++i] = o; - } - } - if (++i) on.length = i; - else delete this.__on; - }; - } - - function onAdd(typename, value, capture) { - var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener; - return function(d, i, group) { - var on = this.__on, o, listener = wrap(value, i, group); - if (on) for (var j = 0, m = on.length; j < m; ++j) { - if ((o = on[j]).type === typename.type && o.name === typename.name) { - this.removeEventListener(o.type, o.listener, o.capture); - this.addEventListener(o.type, o.listener = listener, o.capture = capture); - o.value = value; - return; - } - } - this.addEventListener(typename.type, listener, capture); - o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture}; - if (!on) this.__on = [o]; - else on.push(o); - }; - } - - function selection_on(typename, value, capture) { - var typenames = parseTypenames$1(typename + ""), i, n = typenames.length, t; - - if (arguments.length < 2) { - var on = this.node().__on; - if (on) for (var j = 0, m = on.length, o; j < m; ++j) { - for (i = 0, o = on[j]; i < n; ++i) { - if ((t = typenames[i]).type === o.type && t.name === o.name) { - return o.value; - } - } - } - return; - } - - on = value ? onAdd : onRemove; - if (capture == null) capture = false; - for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture)); - return this; - } - - function customEvent(event1, listener, that, args) { - var event0 = event; - event1.sourceEvent = event; - event = event1; - try { - return listener.apply(that, args); - } finally { - event = event0; - } - } - - function dispatchEvent(node, type, params) { - var window = defaultView(node), - event = window.CustomEvent; - - if (typeof event === "function") { - event = new event(type, params); - } else { - event = window.document.createEvent("Event"); - if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail; - else event.initEvent(type, false, false); - } - - node.dispatchEvent(event); - } - - function dispatchConstant(type, params) { - return function() { - return dispatchEvent(this, type, params); - }; - } - - function dispatchFunction(type, params) { - return function() { - return dispatchEvent(this, type, params.apply(this, arguments)); - }; - } - - function selection_dispatch(type, params) { - return this.each((typeof params === "function" - ? dispatchFunction - : dispatchConstant)(type, params)); - } - - var root = [null]; - - function Selection(groups, parents) { - this._groups = groups; - this._parents = parents; - } - - function selection() { - return new Selection([[document.documentElement]], root); - } - - Selection.prototype = selection.prototype = { - constructor: Selection, - select: selection_select, - selectAll: selection_selectAll, - filter: selection_filter, - data: selection_data, - enter: selection_enter, - exit: selection_exit, - join: selection_join, - merge: selection_merge, - order: selection_order, - sort: selection_sort, - call: selection_call, - nodes: selection_nodes, - node: selection_node, - size: selection_size, - empty: selection_empty, - each: selection_each, - attr: selection_attr, - style: selection_style, - property: selection_property, - classed: selection_classed, - text: selection_text, - html: selection_html, - raise: selection_raise, - lower: selection_lower, - append: selection_append, - insert: selection_insert, - remove: selection_remove, - clone: selection_clone, - datum: selection_datum, - on: selection_on, - dispatch: selection_dispatch - }; - - function select(selector) { - return typeof selector === "string" - ? new Selection([[document.querySelector(selector)]], [document.documentElement]) - : new Selection([[selector]], root); - } - - function sourceEvent() { - var current = event, source; - while (source = current.sourceEvent) current = source; - return current; - } - - function point(node, event) { - var svg = node.ownerSVGElement || node; - - if (svg.createSVGPoint) { - var point = svg.createSVGPoint(); - point.x = event.clientX, point.y = event.clientY; - point = point.matrixTransform(node.getScreenCTM().inverse()); - return [point.x, point.y]; - } - - var rect = node.getBoundingClientRect(); - return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop]; - } - - function mouse(node) { - var event = sourceEvent(); - if (event.changedTouches) event = event.changedTouches[0]; - return point(node, event); - } - - function touch(node, touches, identifier) { - if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches; - - for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) { - if ((touch = touches[i]).identifier === identifier) { - return point(node, touch); - } - } - - return null; - } - - function nopropagation() { - event.stopImmediatePropagation(); - } - - function noevent() { - event.preventDefault(); - event.stopImmediatePropagation(); - } - - function nodrag(view) { - var root = view.document.documentElement, - selection = select(view).on("dragstart.drag", noevent, true); - if ("onselectstart" in root) { - selection.on("selectstart.drag", noevent, true); - } else { - root.__noselect = root.style.MozUserSelect; - root.style.MozUserSelect = "none"; - } - } - - function yesdrag(view, noclick) { - var root = view.document.documentElement, - selection = select(view).on("dragstart.drag", null); - if (noclick) { - selection.on("click.drag", noevent, true); - setTimeout(function() { selection.on("click.drag", null); }, 0); - } - if ("onselectstart" in root) { - selection.on("selectstart.drag", null); - } else { - root.style.MozUserSelect = root.__noselect; - delete root.__noselect; - } - } - - function constant$3(x) { - return function() { - return x; - }; - } - - function DragEvent(target, type, subject, id, active, x, y, dx, dy, dispatch) { - this.target = target; - this.type = type; - this.subject = subject; - this.identifier = id; - this.active = active; - this.x = x; - this.y = y; - this.dx = dx; - this.dy = dy; - this._ = dispatch; - } - - DragEvent.prototype.on = function() { - var value = this._.on.apply(this._, arguments); - return value === this._ ? this : value; - }; - - // Ignore right-click, since that should open the context menu. - function defaultFilter() { - return !event.ctrlKey && !event.button; - } - - function defaultContainer() { - return this.parentNode; - } - - function defaultSubject(d) { - return d == null ? {x: event.x, y: event.y} : d; - } - - function defaultTouchable() { - return navigator.maxTouchPoints || ("ontouchstart" in this); - } - - function drag() { - var filter = defaultFilter, - container = defaultContainer, - subject = defaultSubject, - touchable = defaultTouchable, - gestures = {}, - listeners = dispatch("start", "drag", "end"), - active = 0, - mousedownx, - mousedowny, - mousemoving, - touchending, - clickDistance2 = 0; - - function drag(selection) { - selection - .on("mousedown.drag", mousedowned) - .filter(touchable) - .on("touchstart.drag", touchstarted) - .on("touchmove.drag", touchmoved) - .on("touchend.drag touchcancel.drag", touchended) - .style("touch-action", "none") - .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); - } - - function mousedowned() { - if (touchending || !filter.apply(this, arguments)) return; - var gesture = beforestart("mouse", container.apply(this, arguments), mouse, this, arguments); - if (!gesture) return; - select(event.view).on("mousemove.drag", mousemoved, true).on("mouseup.drag", mouseupped, true); - nodrag(event.view); - nopropagation(); - mousemoving = false; - mousedownx = event.clientX; - mousedowny = event.clientY; - gesture("start"); - } - - function mousemoved() { - noevent(); - if (!mousemoving) { - var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny; - mousemoving = dx * dx + dy * dy > clickDistance2; - } - gestures.mouse("drag"); - } - - function mouseupped() { - select(event.view).on("mousemove.drag mouseup.drag", null); - yesdrag(event.view, mousemoving); - noevent(); - gestures.mouse("end"); - } - - function touchstarted() { - if (!filter.apply(this, arguments)) return; - var touches = event.changedTouches, - c = container.apply(this, arguments), - n = touches.length, i, gesture; - - for (i = 0; i < n; ++i) { - if (gesture = beforestart(touches[i].identifier, c, touch, this, arguments)) { - nopropagation(); - gesture("start"); - } - } - } - - function touchmoved() { - var touches = event.changedTouches, - n = touches.length, i, gesture; - - for (i = 0; i < n; ++i) { - if (gesture = gestures[touches[i].identifier]) { - noevent(); - gesture("drag"); - } - } - } - - function touchended() { - var touches = event.changedTouches, - n = touches.length, i, gesture; - - if (touchending) clearTimeout(touchending); - touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed! - for (i = 0; i < n; ++i) { - if (gesture = gestures[touches[i].identifier]) { - nopropagation(); - gesture("end"); - } - } - } - - function beforestart(id, container, point, that, args) { - var p = point(container, id), s, dx, dy, - sublisteners = listeners.copy(); - - if (!customEvent(new DragEvent(drag, "beforestart", s, id, active, p[0], p[1], 0, 0, sublisteners), function() { - if ((event.subject = s = subject.apply(that, args)) == null) return false; - dx = s.x - p[0] || 0; - dy = s.y - p[1] || 0; - return true; - })) return; - - return function gesture(type) { - var p0 = p, n; - switch (type) { - case "start": gestures[id] = gesture, n = active++; break; - case "end": delete gestures[id], --active; // nobreak - case "drag": p = point(container, id), n = active; break; - } - customEvent(new DragEvent(drag, type, s, id, n, p[0] + dx, p[1] + dy, p[0] - p0[0], p[1] - p0[1], sublisteners), sublisteners.apply, sublisteners, [type, that, args]); - }; - } - - drag.filter = function(_) { - return arguments.length ? (filter = typeof _ === "function" ? _ : constant$3(!!_), drag) : filter; - }; - - drag.container = function(_) { - return arguments.length ? (container = typeof _ === "function" ? _ : constant$3(_), drag) : container; - }; - - drag.subject = function(_) { - return arguments.length ? (subject = typeof _ === "function" ? _ : constant$3(_), drag) : subject; - }; - - drag.touchable = function(_) { - return arguments.length ? (touchable = typeof _ === "function" ? _ : constant$3(!!_), drag) : touchable; - }; - - drag.on = function() { - var value = listeners.on.apply(listeners, arguments); - return value === listeners ? drag : value; - }; - - drag.clickDistance = function(_) { - return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2); - }; - - return drag; - } - - // Copyright 2018 The Distill Template Authors - - const T$a = Template('d-slider', ` - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -`); - - // ARIA - // If the slider has a visible label, it is referenced by aria-labelledby on the slider element. Otherwise, the slider element has a label provided by aria-label. - // If the slider is vertically oriented, it has aria-orientation set to vertical. The default value of aria-orientation for a slider is horizontal. - - const keyCodes = { - left: 37, - up: 38, - right: 39, - down: 40, - pageUp: 33, - pageDown: 34, - end: 35, - home: 36 - }; - - class Slider extends T$a(HTMLElement) { - - - connectedCallback() { - this.connected = true; - this.setAttribute('role', 'slider'); - // Makes the element tab-able. - if (!this.hasAttribute('tabindex')) { this.setAttribute('tabindex', 0); } - - // Keeps track of keyboard vs. mouse interactions for focus rings - this.mouseEvent = false; - - // Handles to shadow DOM elements - this.knob = this.root.querySelector('.knob-container'); - this.background = this.root.querySelector('.background'); - this.trackFill = this.root.querySelector('.track-fill'); - this.track = this.root.querySelector('.track'); - - // Default values for attributes - this.min = this.min ? this.min : 0; - this.max = this.max ? this.max : 100; - this.scale = linear$1().domain([this.min, this.max]).range([0, 1]).clamp(true); - - this.origin = this.origin !== undefined ? this.origin : this.min; - this.step = this.step ? this.step : 1; - this.update(this.value ? this.value : 0); - - this.ticks = this.ticks ? this.ticks : false; - this.renderTicks(); - - this.drag = drag() - .container(this.background) - .on('start', () => { - this.mouseEvent = true; - this.background.classList.add('mousedown'); - this.changeValue = this.value; - this.dragUpdate(); - }) - .on('drag', () => { - this.dragUpdate(); - }) - .on('end', () => { - this.mouseEvent = false; - this.background.classList.remove('mousedown'); - this.dragUpdate(); - if (this.changeValue !== this.value) this.dispatchChange(); - this.changeValue = this.value; - }); - this.drag(select(this.background)); - - this.addEventListener('focusin', () => { - if(!this.mouseEvent) { - this.background.classList.add('focus'); - } - }); - this.addEventListener('focusout', () => { - this.background.classList.remove('focus'); - }); - this.addEventListener('keydown', this.onKeyDown); - - } - - static get observedAttributes() {return ['min', 'max', 'value', 'step', 'ticks', 'origin', 'tickValues', 'tickLabels']; } - - attributeChangedCallback(attr, oldValue, newValue) { - if (isNaN(newValue) || newValue === undefined || newValue === null) return; - if (attr == 'min') { - this.min = +newValue; - this.setAttribute('aria-valuemin', this.min); - } - if (attr == 'max') { - this.max = +newValue; - this.setAttribute('aria-valuemax', this.max); - } - if (attr == 'value') { - this.update(+newValue); - } - if (attr == 'origin') { - this.origin = +newValue; - // this.update(this.value); - } - if (attr == 'step') { - if (newValue > 0) { - this.step = +newValue; - } - } - if (attr == 'ticks') { - this.ticks = (newValue === '' ? true : newValue); - } - } - - onKeyDown(event) { - this.changeValue = this.value; - let stopPropagation = false; - switch (event.keyCode) { - case keyCodes.left: - case keyCodes.down: - this.update(this.value - this.step); - stopPropagation = true; - break; - case keyCodes.right: - case keyCodes.up: - this.update(this.value + this.step); - stopPropagation = true; - break; - case keyCodes.pageUp: - this.update(this.value + this.step * 10); - stopPropagation = true; - break; - - case keyCodes.pageDown: - this.update(this.value + this.step * 10); - stopPropagation = true; - break; - case keyCodes.home: - this.update(this.min); - stopPropagation = true; - break; - case keyCodes.end: - this.update(this.max); - stopPropagation = true; - break; - } - if (stopPropagation) { - this.background.classList.add('focus'); - event.preventDefault(); - event.stopPropagation(); - if (this.changeValue !== this.value) this.dispatchChange(); - } - } - - validateValueRange(min, max, value) { - return Math.max(Math.min(max, value), min); - } - - quantizeValue(value, step) { - return Math.round(value / step) * step; - } - - dragUpdate() { - const bbox = this.background.getBoundingClientRect(); - const x = event.x; - const width = bbox.width; - this.update(this.scale.invert(x / width)); - } - - update(value) { - let v = value; - if (this.step !== 'any') { - v = this.quantizeValue(value, this.step); - } - v = this.validateValueRange(this.min, this.max, v); - if (this.connected) { - this.knob.style.left = this.scale(v) * 100 + '%'; - this.trackFill.style.width = this.scale(this.min + Math.abs(v - this.origin)) * 100 + '%'; - this.trackFill.style.left = this.scale(Math.min(v, this.origin)) * 100 + '%'; - } - if (this.value !== v) { - this.value = v; - this.setAttribute('aria-valuenow', this.value); - this.dispatchInput(); - } - } - - // Dispatches only on a committed change (basically only on mouseup). - dispatchChange() { - const e = new Event('change'); - this.dispatchEvent(e, {}); - } - - // Dispatches on each value change. - dispatchInput() { - const e = new Event('input'); - this.dispatchEvent(e, {}); - } - - renderTicks() { - const ticksContainer = this.root.querySelector('.ticks'); - if (this.ticks !== false) { - let tickData = []; - if (this.ticks > 0) { - tickData = this.scale.ticks(this.ticks); - } else if (this.step === 'any') { - tickData = this.scale.ticks(); - } else { - tickData = range(this.min, this.max + 1e-6, this.step); - } - tickData.forEach(d => { - const tick = document.createElement('div'); - tick.classList.add('tick'); - tick.style.left = this.scale(d) * 100 + '%'; - ticksContainer.appendChild(tick); - }); - } else { - ticksContainer.style.display = 'none'; - } - } - } - - var logo = "\n \n\n"; - - const headerTemplate = ` - - -`; - - // Copyright 2018 The Distill Template Authors - - const T$b = Template('distill-header', headerTemplate, false); - - class DistillHeader extends T$b(HTMLElement) { - - } - - // Copyright 2018 The Distill Template Authors - - const styles$2 = ` - -`; - - function appendixTemplate(frontMatter) { - let html = styles$2; - - if (typeof frontMatter.githubUrl !== 'undefined') { - html += ` -

    Updates and Corrections

    -

    `; - if (frontMatter.githubCompareUpdatesUrl) { - html += `View all changes to this article since it was first published.`; - } - html += ` - If you see mistakes or want to suggest changes, please create an issue on GitHub.

    - `; - } - - const journal = frontMatter.journal; - if (typeof journal !== 'undefined' && journal.title === 'Distill') { - html += ` -

    Reuse

    -

    Diagrams and text are licensed under Creative Commons Attribution CC-BY 4.0 with the source available on GitHub, unless noted otherwise. The figures that have been reused from other sources don’t fall under this license and can be recognized by a note in their caption: “Figure from …”.

    - `; - } - - if (typeof frontMatter.publishedDate !== 'undefined') { - html += ` -

    Citation

    -

    For attribution in academic contexts, please cite this work as

    -
    ${frontMatter.concatenatedAuthors}, "${frontMatter.title}", Distill, ${frontMatter.publishedYear}.
    -

    BibTeX citation

    -
    ${serializeFrontmatterToBibtex(frontMatter)}
    - `; - } - - return html; - } - - class DistillAppendix extends HTMLElement { - - static get is() { return 'distill-appendix'; } - - set frontMatter(frontMatter) { - this.innerHTML = appendixTemplate(frontMatter); - } - - } - - const footerTemplate = ` - - - - -`; - - // Copyright 2018 The Distill Template Authors - - const T$c = Template('distill-footer', footerTemplate); - - class DistillFooter extends T$c(HTMLElement) { - - } - - // Copyright 2018 The Distill Template Authors - - let templateIsLoading = false; - let runlevel = 0; - const initialize = function() { - if (window.distill.runlevel < 1) { - throw new Error("Insufficient Runlevel for Distill Template!"); - } - - /* 1. Flag that we're being loaded */ - if ("distill" in window && window.distill.templateIsLoading) { - throw new Error( - "Runlevel 1: Distill Template is getting loaded more than once, aborting!" - ); - } else { - window.distill.templateIsLoading = true; - console.debug("Runlevel 1: Distill Template has started loading."); - } - - /* 2. Add styles if they weren't added during prerendering */ - makeStyleTag(document); - console.debug("Runlevel 1: Static Distill styles have been added."); - console.debug("Runlevel 1->2."); - window.distill.runlevel += 1; - - /* 3. Register Controller listener functions */ - /* Needs to happen before components to their connected callbacks have a controller to talk to. */ - for (const [functionName, callback] of Object.entries(Controller.listeners)) { - if (typeof callback === "function") { - document.addEventListener(functionName, callback); - } else { - console.error("Runlevel 2: Controller listeners need to be functions!"); - } - } - console.debug("Runlevel 2: We can now listen to controller events."); - console.debug("Runlevel 2->3."); - window.distill.runlevel += 1; - - /* 4. Register components */ - const components = [ - Abstract, Appendix, Article, Bibliography, Byline, Cite, CitationList, Code, - Footnote, FootnoteList, FrontMatter$1, HoverBox, Title, DMath, References, TOC, Figure, - Slider, Interstitial - ]; - - const distillComponents = [DistillHeader, DistillAppendix, DistillFooter]; - - if (window.distill.runlevel < 2) { - throw new Error("Insufficient Runlevel for adding custom elements!"); - } - const allComponents = components.concat(distillComponents); - for (const component of allComponents) { - console.debug("Runlevel 2: Registering custom element: " + component.is); - customElements.define(component.is, component); - } - - console.debug( - "Runlevel 3: Distill Template finished registering custom elements." - ); - console.debug("Runlevel 3->4."); - window.distill.runlevel += 1; - - // If template was added after DOMContentLoaded we may have missed that event. - // Controller will check for that case, so trigger the event explicitly: - if (domContentLoaded()) { - Controller.listeners.DOMContentLoaded(); - } - - console.debug("Runlevel 4: Distill Template initialisation complete."); - window.distill.templateIsLoading = false; - window.distill.templateHasLoaded = true; - }; - - window.distill = { runlevel, initialize, templateIsLoading }; - - /* 0. Check browser feature support; synchronously polyfill if needed */ - if (Polyfills.browserSupportsAllFeatures()) { - console.debug("Runlevel 0: No need for polyfills."); - console.debug("Runlevel 0->1."); - window.distill.runlevel += 1; - window.distill.initialize(); - } else { - console.debug("Runlevel 0: Distill Template is loading polyfills."); - Polyfills.load(window.distill.initialize); - } - -}))); -//# sourceMappingURL=template.v2.js.map +!function(n){"function"==typeof define&&define.amd?define(n):n()}(function(){"use strict"; +// Copyright 2018 The Distill Template Authors +function n(n,t){n.title=t.title,t.published&&(t.published instanceof Date?n.publishedDate=t.published:t.published.constructor===String&&(n.publishedDate=new Date(t.published))),t.publishedDate&&(t.publishedDate instanceof Date?n.publishedDate=t.publishedDate:t.publishedDate.constructor===String?n.publishedDate=new Date(t.publishedDate):console.error("Don't know what to do with published date: "+t.publishedDate)),n.description=t.description,n.authors=t.authors.map(n=>new Nr(n)),n.katex=t.katex,n.password=t.password,t.doi&&(n.doi=t.doi)} +// Copyright 2018 The Distill Template Authors +function t(n=document){const t=new Set,e=n.querySelectorAll("d-cite");for(const n of e){const e=(n.getAttribute("key")||n.getAttribute("bibtex-key")).split(",").map(n=>n.trim());for(const n of e)t.add(n)}return[...t]}function e(n,t,e,i){if(null==n.author)return"";var r=n.author.split(" and ");let o=r.map(n=>{if(-1!=(n=n.trim()).indexOf(","))var e=n.split(",")[0].trim(),i=n.split(",")[1];else if(-1!=n.indexOf(" "))e=n.split(" ").slice(-1)[0].trim(),i=n.split(" ").slice(0,-1).join(" ");else e=n.trim();var r="";return i!=undefined&&(r=(r=i.trim().split(" ").map(n=>n.trim()[0])).join(".")+"."),t.replace("${F}",i).replace("${L}",e).replace("${I}",r).trim()});if(r.length>1){var a=o.slice(0,r.length-1).join(e);return a+=(i||e)+o[r.length-1]}return o[0]}function i(n){var t=n.journal||n.booktitle||"";if("volume"in n){var e=n.issue||n.number;e=e!=undefined?"("+e+")":"",t+=", Vol "+n.volume+e}return"pages"in n&&(t+=", pp. "+n.pages),""!=t&&(t+=". "),"publisher"in n&&"."!=(t+=n.publisher)[t.length-1]&&(t+="."),t}function r(n){if("url"in n){var t=n.url,e=/arxiv\.org\/abs\/([0-9\.]*)/.exec(t);if(null!=e&&(t=`http://arxiv.org/pdf/${e[1]}.pdf`),".pdf"==t.slice(-4))var i="PDF";else if(".html"==t.slice(-5))i="HTML";return`  [${i||"link"}]`}return""}function o(n,t){return"doi"in n?`${t?"
    ":""} DOI: ${n.doi}`:""}function a(n){return''+n.title+" "}function s(n){if(n){var t=a(n);return t+=r(n)+"
    ",n.author&&(t+=e(n,"${L}, ${I}",", "," and "),(n.year||n.date)&&(t+=", ")),n.year||n.date?t+=(n.year||n.date)+". ":t+=". ",t+=i(n),t+=o(n)}return"?"}function l(n){if(n){var t="";t+=""+n.title+"",t+=r(n),t+="
    ";var a=e(n,"${I} ${L}",", ")+".",s=i(n).trim()+" "+n.year+". "+o(n,!0);return(a+s).length"+s,t}return"?"}function u(){return-1!==["interactive","complete"].indexOf(document.readyState)} +// Copyright 2018 The Distill Template Authors +function c(n){for(let t of n.authors){const n=Boolean(t.affiliation),e=Boolean(t.affiliations);if(n)if(e)console.warn(`Author ${t.author} has both old-style ("affiliation" & "affiliationURL") and new style ("affiliations") affiliation information!`);else{let n={name:t.affiliation};t.affiliationURL&&(n.url=t.affiliationURL),t.affiliations=[n]}}return n}function d(n){const t=n.firstElementChild;if(t){if("json"==t.getAttribute("type").split("/")[1]){const n=t.textContent;return c(JSON.parse(n))}console.error("Distill only supports JSON frontmatter tags anymore; no more YAML.")}else console.error("You added a frontmatter tag but did not provide a script tag with front matter data in it. Please take a look at our templates.");return{}} +// Copyright 2018 The Distill Template Authors +function h(n,t){const e=n.body,i=e.querySelector("d-article");if(!i)return void console.warn("No d-article tag found; skipping adding optional components!");let r=n.querySelector("d-byline");r||(t.authors?(r=n.createElement("d-byline"),e.insertBefore(r,i)):console.warn("No authors found in front matter; please add them before submission!"));let o=n.querySelector("d-title");o||(o=n.createElement("d-title"),e.insertBefore(o,r));let a=o.querySelector("h1");a||((a=n.createElement("h1")).textContent=t.title,o.insertBefore(a,o.firstChild));const s="undefined"!=typeof t.password;let l=e.querySelector("d-interstitial");if(s&&!l){const i="undefined"!=typeof window,r=i&&window.location.hostname.includes("localhost");i&&r||((l=n.createElement("d-interstitial")).password=t.password,e.insertBefore(l,e.firstChild))}else!s&&l&&l.parentElement.removeChild(this);let u=n.querySelector("d-appendix");u||(u=n.createElement("d-appendix"),n.body.appendChild(u));let c=n.querySelector("d-footnote-list");c||(c=n.createElement("d-footnote-list"),u.appendChild(c));let d=n.querySelector("d-citation-list");d||(d=n.createElement("d-citation-list"),u.appendChild(d))} +// Copyright 2018 The Distill Template Authors +function p(n){const t="distill-prerendered-styles";if(!n.getElementById(t)){const e=n.createElement("style");e.id=t,e.type="text/css";const i=n.createTextNode(Kr);e.appendChild(i);const r=n.head.querySelector("script");n.head.insertBefore(e,r)}} +// Copyright 2018 The Distill Template Authors +function f(n,t){console.debug("Runlevel 0: Polyfill required: "+n.name);const e=document.createElement("script");e.src=n.url,e.async=!1,t&&(e.onload=function(){t(n)}),e.onerror=function(){new Error("Runlevel 0: Polyfills failed to load script "+n.name)},document.head.appendChild(e)} +// Copyright 2018 The Distill Template Authors +function g(n){return`${n} {\n grid-column: left / text;\n }\n `} +// Copyright 2018 The Distill Template Authors +function m(n,t){return n(t={exports:{}},t.exports),t.exports} +// Copyright 2018 The Distill Template Authors +function b(n){return n.replace(/[\t\n ]+/g," ").replace(/{\\["^`.'acu~Hvs]( )?([a-zA-Z])}/g,(n,t,e)=>e).replace(/{\\([a-zA-Z])}/g,(n,t)=>t)}function y(n){const t=new Map,e=oo.toJSON(n);for(const n of e){for(const[t,e]of Object.entries(n.entryTags))n.entryTags[t.toLowerCase()]=b(e);n.entryTags.type=n.entryType,t.set(n.citationKey,n.entryTags)}return t}function v(n){return`@article{${n.slug},\n author = {${n.bibtexAuthors}},\n title = {${n.title}},\n journal = {${n.journal.title}},\n year = {${n.publishedYear}},\n note = {${n.url}},\n doi = {${n.doi}}\n}`} +// Copyright 2018 The Distill Template Authors +// Copyright 2018 The Distill Template Authors +function w(n){return`\n \n`}function x(n,t,e=document){if(t.size>0){n.style.display="";let i=n.querySelector(".references");if(i)i.innerHTML="";else{const t=e.createElement("style");t.innerHTML=co,n.appendChild(t);const r=e.createElement("h3");r.id="references",r.textContent="References",n.appendChild(r),(i=e.createElement("ol")).id="references-list",i.className="references",n.appendChild(i)}for(const[n,r]of t){const t=e.createElement("li");t.id=n,t.innerHTML=s(r),i.appendChild(t)}}else n.style.display="none"}function k(n,t){let e='\n \n \n

    Table of contents

    \n
      ';for(const n of t){const t="D-TITLE"==n.parentElement.tagName,i=n.getAttribute("no-toc");if(t||i)continue;const r=n.textContent;let o='
    • '+r+"
    • ";"H3"==n.tagName?o="
        "+o+"
      ":o+="
      ",e+=o}e+="
    ",n.innerHTML=e} +// Copyright 2018 The Distill Template Authors +function S(n,t){return nt?1:n>=t?0:NaN}function M(n){return 1===n.length&&(n=T(n)),{left:function(t,e,i,r){for(null==i&&(i=0),null==r&&(r=t.length);i>>1;n(t[o],e)<0?i=o+1:r=o}return i},right:function(t,e,i,r){for(null==i&&(i=0),null==r&&(r=t.length);i>>1;n(t[o],e)>0?r=o:i=o+1}return i}}}function T(n){return function(t,e){return S(n(t),e)}}function _(n,t,e){n=+n,t=+t,e=(r=arguments.length)<2?(t=n,n=0,1):r<3?1:+e;for(var i=-1,r=0|Math.max(0,Math.ceil((t-n)/e)),o=new Array(r);++i0)return[n];if((i=t0)for(n=Math.ceil(n/a),t=Math.floor(t/a),o=new Array(r=Math.ceil(t-n+1));++s=0?(o>=Lo?10:o>=Do?5:o>=Oo?2:1)*Math.pow(10,r):-Math.pow(10,-r)/(o>=Lo?10:o>=Do?5:o>=Oo?2:1)}function E(n,t,e){var i=Math.abs(t-n)/Math.max(0,e),r=Math.pow(10,Math.floor(Math.log(i)/Math.LN10)),o=i/r;return o>=Lo?r*=10:o>=Do?r*=5:o>=Oo&&(r*=2),t>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===e?P(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===e?P(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=Ho.exec(n))?new q(t[1],t[2],t[3],1):(t=zo.exec(n))?new q(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=qo.exec(n))?P(t[1],t[2],t[3],t[4]):(t=jo.exec(n))?P(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=Bo.exec(n))?W(t[1],t[2]/100,t[3]/100,1):(t=Yo.exec(n))?W(t[1],t[2]/100,t[3]/100,t[4]):Wo.hasOwnProperty(n)?$(Wo[n]):"transparent"===n?new q(NaN,NaN,NaN,0):null}function $(n){return new q(n>>16&255,n>>8&255,255&n,1)}function P(n,t,e,i){return i<=0&&(n=t=e=NaN),new q(n,t,e,i)}function H(n){return n instanceof O||(n=U(n)),n?new q((n=n.rgb()).r,n.g,n.b,n.opacity):new q}function z(n,t,e,i){return 1===arguments.length?H(n):new q(n,t,e,null==i?1:i)}function q(n,t,e,i){this.r=+n,this.g=+t,this.b=+e,this.opacity=+i}function j(){return"#"+Y(this.r)+Y(this.g)+Y(this.b)}function B(){var n=this.opacity;return(1===(n=isNaN(n)?1:Math.max(0,Math.min(1,n)))?"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===n?")":", "+n+")")}function Y(n){return((n=Math.max(0,Math.min(255,Math.round(n)||0)))<16?"0":"")+n.toString(16)}function W(n,t,e,i){return i<=0?n=t=e=NaN:e<=0||e>=1?n=t=NaN:t<=0&&(n=NaN),new K(n,t,e,i)}function G(n){if(n instanceof K)return new K(n.h,n.s,n.l,n.opacity);if(n instanceof O||(n=U(n)),!n)return new K;if(n instanceof K)return n;var t=(n=n.rgb()).r/255,e=n.g/255,i=n.b/255,r=Math.min(t,e,i),o=Math.max(t,e,i),a=NaN,s=o-r,l=(o+r)/2;return s?(a=t===o?(e-i)/s+6*(e0&&l<1?0:a,new K(a,s,l,n.opacity)}function V(n,t,e,i){return 1===arguments.length?G(n):new K(n,t,e,null==i?1:i)}function K(n,t,e,i){this.h=+n,this.s=+t,this.l=+e,this.opacity=+i}function X(n,t,e){return 255*(n<60?t+(e-t)*n/60:n<180?e:n<240?t+(e-t)*(240-n)/60:t)}function Z(n){if(n instanceof J)return new J(n.l,n.a,n.b,n.opacity);if(n instanceof sn)return ln(n);n instanceof q||(n=H(n));var t,e,i=rn(n.r),r=rn(n.g),o=rn(n.b),a=nn((.2225045*i+.7168786*r+.0606169*o)/Zo);return i===r&&r===o?t=e=a:(t=nn((.4360747*i+.3850649*r+.1430804*o)/Xo),e=nn((.0139322*i+.0971045*r+.7141733*o)/Qo)),new J(116*a-16,500*(t-a),200*(a-e),n.opacity)}function Q(n,t,e,i){return 1===arguments.length?Z(n):new J(n,t,e,null==i?1:i)}function J(n,t,e,i){this.l=+n,this.a=+t,this.b=+e,this.opacity=+i}function nn(n){return n>ea?Math.pow(n,1/3):n/ta+Jo}function tn(n){return n>na?n*n*n:ta*(n-Jo)}function en(n){return 255*(n<=.0031308?12.92*n:1.055*Math.pow(n,1/2.4)-.055)}function rn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function on(n){if(n instanceof sn)return new sn(n.h,n.c,n.l,n.opacity);if(n instanceof J||(n=Z(n)),0===n.a&&0===n.b)return new sn(NaN,0o&&(r=t.slice(o,r),s[a]?s[a]+=r:s[++a]=r),(e=e[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,l.push({i:a,x:xn(e,i)})),o=fa.lastIndex;return ot&&(e=n,n=t,t=e),function(e){return Math.max(n,Math.min(t,e))}}function On(n,t,e){var i=n[0],r=n[1],o=t[0],a=t[1];return r2?In:On,a=s=null,t}function t(n){return isNaN(n=+n)?r:(a||(a=o(l.map(e),u,c)))(e(d(n)))}var e,i,r,o,a,s,l=ga,u=ga,c=_n,d=Nn;return t.invert=function(n){return d(i((s||(s=o(u,l.map(e),xn)))(n)))},t.domain=function(t){return arguments.length?(l=Array.from(t,En),n()):l.slice()},t.range=function(t){return arguments.length?(u=Array.from(t),n()):u.slice()},t.rangeRound=function(t){return u=Array.from(t),c=Cn,n()},t.clamp=function(t){return arguments.length?(d=!!t||Nn,n()):d!==Nn},t.interpolate=function(t){return arguments.length?(c=t,n()):c},t.unknown=function(n){return arguments.length?(r=n,t):r},function(t,r){return e=t,i=r,n()}}function Un(){return Rn()(Nn,Nn)}function $n(n,t){if((e=(n=t?n.toExponential(t-1):n.toExponential()).indexOf("e"))<0)return null;var e,i=n.slice(0,e);return[i.length>1?i[0]+i.slice(2):i,+n.slice(e+1)]}function Pn(n){return(n=$n(Math.abs(n)))?n[1]:NaN}function Hn(n,t){return function(e,i){for(var r=e.length,o=[],a=0,s=n[0],l=0;r>0&&s>0&&(l+s+1>i&&(s=Math.max(1,i-l)),o.push(e.substring(r-=s,r+s)),!((l+=s+1)>i));)s=n[a=(a+1)%n.length];return o.reverse().join(t)}}function zn(n){return function(t){return t.replace(/[0-9]/g,function(t){return n[+t]})}}function qn(n){if(!(t=ma.exec(n)))throw new Error("invalid format: "+n);var t;return new jn({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function jn(n){this.fill=n.fill===undefined?" ":n.fill+"",this.align=n.align===undefined?">":n.align+"",this.sign=n.sign===undefined?"-":n.sign+"",this.symbol=n.symbol===undefined?"":n.symbol+"",this.zero=!!n.zero,this.width=n.width===undefined?undefined:+n.width,this.comma=!!n.comma,this.precision=n.precision===undefined?undefined:+n.precision,this.trim=!!n.trim,this.type=n.type===undefined?"":n.type+""}function Bn(n){n:for(var t,e=n.length,i=1,r=-1;i0&&(r=0)}return r>0?n.slice(0,r)+n.slice(t+1):n}function Yn(n,t){var e=$n(n,t);if(!e)return n+"";var i=e[0],r=e[1],o=r-(da=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,a=i.length;return o===a?i:o>a?i+new Array(o-a+1).join("0"):o>0?i.slice(0,o)+"."+i.slice(o):"0."+new Array(1-o).join("0")+$n(n,Math.max(0,t+o-1))[0]}function Wn(n,t){var e=$n(n,t);if(!e)return n+"";var i=e[0],r=e[1];return r<0?"0."+new Array(-r).join("0")+i:i.length>r+1?i.slice(0,r+1)+"."+i.slice(r+1):i+new Array(r-i.length+2).join("0")}function Gn(n){return n}function Vn(n){function t(n){function t(n){var t,r,o,l=w,p=x;if("c"===v)p=k(n)+p,n="";else{var M=(n=+n)<0||1/n<0;if(n=isNaN(n)?c:k(Math.abs(n),b),y&&(n=Bn(n)),M&&0==+n&&"+"!==h&&(M=!1),l=(M?"("===h?h:u:"-"===h||"("===h?"":h)+l,p=("s"===v?ka[8+da/3]:"")+p+(M&&"("===h?")":""),S)for(t=-1,r=n.length;++t(o=n.charCodeAt(t))||o>57){p=(46===o?a+n.slice(t+1):n.slice(t))+p,n=n.slice(0,t);break}}m&&!f&&(n=i(n,Infinity));var T=l.length+n.length+p.length,_=T>1)+l+n+p+_.slice(T);break;default:n=_+l+n+p}return s(n)}var e=(n=qn(n)).fill,d=n.align,h=n.sign,p=n.symbol,f=n.zero,g=n.width,m=n.comma,b=n.precision,y=n.trim,v=n.type;"n"===v?(m=!0,v="g"):wa[v]||(b===undefined&&(b=12),y=!0,v="g"),(f||"0"===e&&"="===d)&&(f=!0,e="0",d="=");var w="$"===p?r:"#"===p&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",x="$"===p?o:/[%p]/.test(v)?l:"",k=wa[v],S=/[defgprs%]/.test(v);return b=b===undefined?6:/[gprs]/.test(v)?Math.max(1,Math.min(21,b)):Math.max(0,Math.min(20,b)),t.toString=function(){return n+""},t}function e(n,e){var i=t(((n=qn(n)).type="f",n)),r=3*Math.max(-8,Math.min(8,Math.floor(Pn(e)/3))),o=Math.pow(10,-r),a=ka[8+r/3];return function(n){return i(o*n)+a}}var i=n.grouping===undefined||n.thousands===undefined?Gn:Hn(xa.call(n.grouping,Number),n.thousands+""),r=n.currency===undefined?"":n.currency[0]+"",o=n.currency===undefined?"":n.currency[1]+"",a=n.decimal===undefined?".":n.decimal+"",s=n.numerals===undefined?Gn:zn(xa.call(n.numerals,String)),l=n.percent===undefined?"%":n.percent+"",u=n.minus===undefined?"-":n.minus+"",c=n.nan===undefined?"NaN":n.nan+"";return{format:t,formatPrefix:e}}function Kn(n){return ba=Vn(n),ya=ba.format,va=ba.formatPrefix,ba}function Xn(n){return Math.max(0,-Pn(Math.abs(n)))}function Zn(n,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Pn(t)/3)))-Pn(Math.abs(n)))}function Qn(n,t){return n=Math.abs(n),t=Math.abs(t)-n,Math.max(0,Pn(t)-Pn(n))+1}function Jn(n,t,e,i){var r,o=E(n,t,e);switch((i=qn(null==i?",f":i)).type){case"s":var a=Math.max(Math.abs(n),Math.abs(t));return null!=i.precision||isNaN(r=Zn(o,a))||(i.precision=r),va(i,a);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(r=Qn(o,Math.max(Math.abs(n),Math.abs(t))))||(i.precision=r-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(r=Xn(o))||(i.precision=r-2*("%"===i.type))}return ya(i)}function nt(n){var t=n.domain;return n.ticks=function(n){var e=t();return C(e[0],e[e.length-1],null==n?10:n)},n.tickFormat=function(n,e){var i=t();return Jn(i[0],i[i.length-1],null==n?10:n,e)},n.nice=function(e){null==e&&(e=10);var i,r=t(),o=0,a=r.length-1,s=r[o],l=r[a];return l0?i=A(s=Math.floor(s/i)*i,l=Math.ceil(l/i)*i,e):i<0&&(i=A(s=Math.ceil(s*i)/i,l=Math.floor(l*i)/i,e)),i>0?(r[o]=Math.floor(s/i)*i,r[a]=Math.ceil(l/i)*i,t(r)):i<0&&(r[o]=Math.ceil(s*i)/i,r[a]=Math.floor(l*i)/i,t(r)),n},n}function tt(){var n=Un();return n.copy=function(){return Fn(n,tt())},N.apply(n,arguments),nt(n)}function et(n,t,e,i){function r(t){return n(t=0===arguments.length?new Date:new Date(+t)),t}return r.floor=function(t){return n(t=new Date(+t)),t},r.ceil=function(e){return n(e=new Date(e-1)),t(e,1),n(e),e},r.round=function(n){var t=r(n),e=r.ceil(n);return n-t0))return s;do{s.push(a=new Date(+e)),t(e,o),n(e)}while(a=t)for(;n(t),!e(t);)t.setTime(t-1)},function(n,i){if(n>=n)if(i<0)for(;++i<=0;)for(;t(n,-1),!e(n););else for(;--i>=0;)for(;t(n,1),!e(n););})},e&&(r.count=function(t,i){return Sa.setTime(+t),Ma.setTime(+i),n(Sa),n(Ma),Math.floor(e(Sa,Ma))},r.every=function(n){return n=Math.floor(n),isFinite(n)&&n>0?n>1?r.filter(i?function(t){return i(t)%n==0}:function(t){return r.count(0,t)%n==0}):r:null}),r}function it(n){return et(function(t){t.setDate(t.getDate()-(t.getDay()+7-n)%7),t.setHours(0,0,0,0)},function(n,t){n.setDate(n.getDate()+7*t)},function(n,t){return(t-n-(t.getTimezoneOffset()-n.getTimezoneOffset())*Ca)/Na})}function rt(n){return et(function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-n)%7),t.setUTCHours(0,0,0,0)},function(n,t){n.setUTCDate(n.getUTCDate()+7*t)},function(n,t){return(t-n)/Na})}function ot(n){if(0<=n.y&&n.y<100){var t=new Date(-1,n.m,n.d,n.H,n.M,n.S,n.L);return t.setFullYear(n.y),t}return new Date(n.y,n.m,n.d,n.H,n.M,n.S,n.L)}function at(n){if(0<=n.y&&n.y<100){var t=new Date(Date.UTC(-1,n.m,n.d,n.H,n.M,n.S,n.L));return t.setUTCFullYear(n.y),t}return new Date(Date.UTC(n.y,n.m,n.d,n.H,n.M,n.S,n.L))}function st(n,t,e){return{y:n,m:t,d:e,H:0,M:0,S:0,L:0}}function lt(n){function t(n,t){return function(e){var i,r,o,a=[],s=-1,l=0,u=n.length;for(e instanceof Date||(e=new Date(+e));++s53)return null;"w"in a||(a.w=1),"Z"in a?(r=(o=(r=at(st(a.y,0,1))).getUTCDay())>4||0===o?$a.ceil(r):$a(r),r=Ra.offset(r,7*(a.V-1)),a.y=r.getUTCFullYear(),a.m=r.getUTCMonth(),a.d=r.getUTCDate()+(a.w+6)%7):(r=(o=(r=ot(st(a.y,0,1))).getDay())>4||0===o?Oa.ceil(r):Oa(r),r=La.offset(r,7*(a.V-1)),a.y=r.getFullYear(),a.m=r.getMonth(),a.d=r.getDate()+(a.w+6)%7)}else("W"in a||"U"in a)&&("w"in a||(a.w="u"in a?a.u%7:"W"in a?1:0),o="Z"in a?at(st(a.y,0,1)).getUTCDay():ot(st(a.y,0,1)).getDay(),a.m=0,a.d="W"in a?(a.w+6)%7+7*a.W-(o+5)%7:a.w+7*a.U-(o+6)%7);return"Z"in a?(a.H+=a.Z/100|0,a.M+=a.Z%100,at(a)):ot(a)}}function i(n,t,e,i){for(var r,o,a=0,s=t.length,l=e.length;a=l)return-1;if(37===(r=t.charCodeAt(a++))){if(r=t.charAt(a++),!(o=B[r in Ba?t.charAt(a++):r])||(i=o(n,e,i))<0)return-1}else if(r!=e.charCodeAt(i++))return-1}return i}function r(n,t,e){var i=D.exec(t.slice(e));return i?(n.p=O[i[0].toLowerCase()],e+i[0].length):-1}function o(n,t,e){var i=R.exec(t.slice(e));return i?(n.w=U[i[0].toLowerCase()],e+i[0].length):-1}function a(n,t,e){var i=I.exec(t.slice(e));return i?(n.w=F[i[0].toLowerCase()],e+i[0].length):-1}function s(n,t,e){var i=H.exec(t.slice(e));return i?(n.m=z[i[0].toLowerCase()],e+i[0].length):-1}function l(n,t,e){var i=$.exec(t.slice(e));return i?(n.m=P[i[0].toLowerCase()],e+i[0].length):-1}function u(n,t,e){return i(n,M,t,e)}function c(n,t,e){return i(n,T,t,e)}function d(n,t,e){return i(n,_,t,e)}function h(n){return E[n.getDay()]}function p(n){return A[n.getDay()]}function f(n){return L[n.getMonth()]}function g(n){return N[n.getMonth()]}function m(n){return C[+(n.getHours()>=12)]}function b(n){return 1+~~(n.getMonth()/3)}function y(n){return E[n.getUTCDay()]}function v(n){return A[n.getUTCDay()]}function w(n){return L[n.getUTCMonth()]}function x(n){return N[n.getUTCMonth()]}function k(n){return C[+(n.getUTCHours()>=12)]}function S(n){return 1+~~(n.getUTCMonth()/3)}var M=n.dateTime,T=n.date,_=n.time,C=n.periods,A=n.days,E=n.shortDays,N=n.months,L=n.shortMonths,D=dt(C),O=ht(C),I=dt(A),F=ht(A),R=dt(E),U=ht(E),$=dt(N),P=ht(N),H=dt(L),z=ht(L),q={a:h,A:p,b:f,B:g,c:null,d:Ot,e:Ot,f:$t,H:It,I:Ft,j:Rt,L:Ut,m:Pt,M:Ht,p:m,q:b,Q:fe,s:ge,S:zt,u:qt,U:jt,V:Bt,w:Yt,W:Wt,x:null,X:null,y:Gt,Y:Vt,Z:Kt,"%":pe},j={a:y,A:v,b:w,B:x,c:null,d:Xt,e:Xt,f:te,H:Zt,I:Qt,j:Jt,L:ne,m:ee,M:ie,p:k,q:S,Q:fe,s:ge,S:re,u:oe,U:ae,V:se,w:le,W:ue,x:null,X:null,y:ce,Y:de,Z:he,"%":pe},B={a:o,A:a,b:s,B:l,c:u,d:St,e:St,f:Et,H:Tt,I:Tt,j:Mt,L:At,m:kt,M:_t,p:r,q:xt,Q:Lt,s:Dt,S:Ct,u:ft,U:gt,V:mt,w:pt,W:bt,x:c,X:d,y:vt,Y:yt,Z:wt,"%":Nt};return q.x=t(T,q),q.X=t(_,q),q.c=t(M,q),j.x=t(T,j),j.X=t(_,j),j.c=t(M,j),{format:function(n){var e=t(n+="",q);return e.toString=function(){return n},e},parse:function(n){var t=e(n+="",!1);return t.toString=function(){return n},t},utcFormat:function(n){var e=t(n+="",j);return e.toString=function(){return n},e},utcParse:function(n){var t=e(n+="",!0);return t.toString=function(){return n},t}}}function ut(n,t,e){var i=n<0?"-":"",r=(i?-n:n)+"",o=r.length;return i+(o68?1900:2e3),e+i[0].length):-1}function wt(n,t,e){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(e,e+6));return i?(n.Z=i[1]?0:-(i[2]+(i[3]||"00")),e+i[0].length):-1}function xt(n,t,e){var i=Ya.exec(t.slice(e,e+1));return i?(n.q=3*i[0]-3,e+i[0].length):-1}function kt(n,t,e){var i=Ya.exec(t.slice(e,e+2));return i?(n.m=i[0]-1,e+i[0].length):-1}function St(n,t,e){var i=Ya.exec(t.slice(e,e+2));return i?(n.d=+i[0],e+i[0].length):-1}function Mt(n,t,e){var i=Ya.exec(t.slice(e,e+3));return i?(n.m=0,n.d=+i[0],e+i[0].length):-1}function Tt(n,t,e){var i=Ya.exec(t.slice(e,e+2));return i?(n.H=+i[0],e+i[0].length):-1}function _t(n,t,e){var i=Ya.exec(t.slice(e,e+2));return i?(n.M=+i[0],e+i[0].length):-1}function Ct(n,t,e){var i=Ya.exec(t.slice(e,e+2));return i?(n.S=+i[0],e+i[0].length):-1}function At(n,t,e){var i=Ya.exec(t.slice(e,e+3));return i?(n.L=+i[0],e+i[0].length):-1}function Et(n,t,e){var i=Ya.exec(t.slice(e,e+6));return i?(n.L=Math.floor(i[0]/1e3),e+i[0].length):-1}function Nt(n,t,e){var i=Wa.exec(t.slice(e,e+1));return i?e+i[0].length:-1}function Lt(n,t,e){var i=Ya.exec(t.slice(e));return i?(n.Q=+i[0],e+i[0].length):-1}function Dt(n,t,e){var i=Ya.exec(t.slice(e));return i?(n.s=+i[0],e+i[0].length):-1}function Ot(n,t){return ut(n.getDate(),t,2)}function It(n,t){return ut(n.getHours(),t,2)}function Ft(n,t){return ut(n.getHours()%12||12,t,2)}function Rt(n,t){return ut(1+La.count(Fa(n),n),t,3)}function Ut(n,t){return ut(n.getMilliseconds(),t,3)}function $t(n,t){return Ut(n,t)+"000"}function Pt(n,t){return ut(n.getMonth()+1,t,2)}function Ht(n,t){return ut(n.getMinutes(),t,2)}function zt(n,t){return ut(n.getSeconds(),t,2)}function qt(n){var t=n.getDay();return 0===t?7:t}function jt(n,t){return ut(Da.count(Fa(n)-1,n),t,2)}function Bt(n,t){var e=n.getDay();return n=e>=4||0===e?Ia(n):Ia.ceil(n),ut(Ia.count(Fa(n),n)+(4===Fa(n).getDay()),t,2)}function Yt(n){return n.getDay()}function Wt(n,t){return ut(Oa.count(Fa(n)-1,n),t,2)}function Gt(n,t){return ut(n.getFullYear()%100,t,2)}function Vt(n,t){return ut(n.getFullYear()%1e4,t,4)}function Kt(n){var t=n.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+ut(t/60|0,"0",2)+ut(t%60,"0",2)}function Xt(n,t){return ut(n.getUTCDate(),t,2)}function Zt(n,t){return ut(n.getUTCHours(),t,2)}function Qt(n,t){return ut(n.getUTCHours()%12||12,t,2)}function Jt(n,t){return ut(1+Ra.count(Ha(n),n),t,3)}function ne(n,t){return ut(n.getUTCMilliseconds(),t,3)}function te(n,t){return ne(n,t)+"000"}function ee(n,t){return ut(n.getUTCMonth()+1,t,2)}function ie(n,t){return ut(n.getUTCMinutes(),t,2)}function re(n,t){return ut(n.getUTCSeconds(),t,2)}function oe(n){var t=n.getUTCDay();return 0===t?7:t}function ae(n,t){return ut(Ua.count(Ha(n)-1,n),t,2)}function se(n,t){var e=n.getUTCDay();return n=e>=4||0===e?Pa(n):Pa.ceil(n),ut(Pa.count(Ha(n),n)+(4===Ha(n).getUTCDay()),t,2)}function le(n){return n.getUTCDay()}function ue(n,t){return ut($a.count(Ha(n)-1,n),t,2)}function ce(n,t){return ut(n.getUTCFullYear()%100,t,2)}function de(n,t){return ut(n.getUTCFullYear()%1e4,t,4)}function he(){return"+0000"}function pe(){return"%"}function fe(n){return+n}function ge(n){return Math.floor(+n/1e3)}function me(n){return za=lt(n),za.format,za.parse,qa=za.utcFormat,ja=za.utcParse,za}function be(n){return n.toISOString()}function ye(n){var t=new Date(n);return isNaN(t)?null:t}function ve(){for(var n,t=0,e=arguments.length,i={};t=0&&(e=n.slice(i+1),n=n.slice(0,i)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:e}})}function ke(n,t){for(var e,i=0,r=n.length;i=0&&"xmlns"!==(t=n.slice(0,e))&&(n=n.slice(e+1)),Za.hasOwnProperty(t)?{space:Za[t],local:n}:n}function Te(n){return function(){var t=this.ownerDocument,e=this.namespaceURI;return e===Xa&&t.documentElement.namespaceURI===Xa?t.createElement(n):t.createElementNS(e,n)}}function _e(n){return function(){return this.ownerDocument.createElementNS(n.space,n.local)}}function Ce(n){var t=Me(n);return(t.local?_e:Te)(t)}function Ae(){}function Ee(n){return null==n?Ae:function(){return this.querySelector(n)}}function Ne(n){"function"!=typeof n&&(n=Ee(n));for(var t=this._groups,e=t.length,i=new Array(e),r=0;r=w&&(w=v+1);!(y=m[w])&&++w=0;)(i=r[o])&&(a&&4^i.compareDocumentPosition(a)&&a.parentNode.insertBefore(i,a),a=i);return this}function Ge(n){function t(t,e){return t&&e?n(t.__data__,e.__data__):!t-!e}n||(n=Ve);for(var e=this._groups,i=e.length,r=new Array(i),o=0;ot?1:n>=t?0:NaN}function Ke(){var n=arguments[0];return arguments[0]=this,n.apply(null,arguments),this}function Xe(){var n=new Array(this.size()),t=-1;return this.each(function(){n[++t]=this}),n}function Ze(){for(var n=this._groups,t=0,e=n.length;t1?this.each((null==t?ui:"function"==typeof t?di:ci)(n,t,null==e?"":e)):pi(this.node(),n)}function pi(n,t){return n.style.getPropertyValue(t)||li(n).getComputedStyle(n,null).getPropertyValue(t)}function fi(n){return function(){delete this[n]}}function gi(n,t){return function(){this[n]=t}}function mi(n,t){return function(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}}function bi(n,t){return arguments.length>1?this.each((null==t?fi:"function"==typeof t?mi:gi)(n,t)):this.node()[n]}function yi(n){return n.trim().split(/^|\s+/)}function vi(n){return n.classList||new wi(n)}function wi(n){this._node=n,this._names=yi(n.getAttribute("class")||"")}function xi(n,t){for(var e=vi(n),i=-1,r=t.length;++i=0&&(t=n.slice(e+1),n=n.slice(0,e)),{type:n,name:t}})}function Zi(n){return function(){var t=this.__on;if(t){for(var e,i=0,r=-1,o=t.length;iv}m.mouse("drag")}function i(){sr(ns.view).on("mousemove.drag mouseup.drag",null),gr(ns.view,c),pr(),m.mouse("end")}function r(){if(h.apply(this,arguments)){var n,t,e=ns.changedTouches,i=p.apply(this,arguments),r=e.length;for(n=0;nView all changes to this article since it was first published.`),t+=`\n If you see mistakes or want to suggest changes, please create an issue on GitHub.

    \n `);const e=n.journal;return void 0!==e&&"Distill"===e.title&&(t+=`\n

    Reuse

    \n

    Diagrams and text are licensed under Creative Commons Attribution CC-BY 4.0 with the source available on GitHub, unless noted otherwise. The figures that have been reused from other sources don\u2019t fall under this license and can be recognized by a note in their caption: \u201cFigure from \u2026\u201d.

    \n `),"undefined"!=typeof n.publishedDate&&(t+=`\n

    Citation

    \n

    For attribution in academic contexts, please cite this work as

    \n
    ${n.concatenatedAuthors}, "${n.title}", Distill, ${n.publishedYear}.
    \n

    BibTeX citation

    \n
    ${v(n)}
    \n `),t}const Mr=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],Tr=["Jan.","Feb.","March","April","May","June","July","Aug.","Sept.","Oct.","Nov.","Dec."],_r=n=>n<10?"0"+n:n,Cr=function(n){return`${Mr[n.getDay()].substring(0,3)}, ${_r(n.getDate())} ${Tr[n.getMonth()].substring(0,3)} ${n.getFullYear().toString()} ${n.getUTCHours().toString()}:${n.getUTCMinutes().toString()}:${n.getUTCSeconds().toString()} Z`},Ar=function(n){return Array.from(n).reduce((n,[t,e])=>Object.assign(n,{[t]:e}),{})},Er=function(n){const t=new Map;for(var e in n)n.hasOwnProperty(e)&&t.set(e,n[e]);return t};class Nr{constructor(n){this.name=n.author,this.personalURL=n.authorURL,this.affiliation=n.affiliation,this.affiliationURL=n.affiliationURL,this.affiliations=n.affiliations||[]}get firstName(){const n=this.name.split(" ");return n.slice(0,n.length-1).join(" ")}get lastName(){const n=this.name.split(" ");return n[n.length-1]}}class Lr{constructor(){this.title="unnamed article",this.description="",this.authors=[],this.bibliography=new Map,this.bibliographyParsed=!1,this.citations=[],this.citationsCollected=!1,this.journal={},this.katex={},this.doi=undefined,this.publishedDate=undefined}set url(n){this._url=n}get url(){return this._url?this._url:this.distillPath&&this.journal.url?this.journal.url+"/"+this.distillPath:this.journal.url?this.journal.url:void 0}get githubUrl(){return this.githubPath?"https://github.com/"+this.githubPath:undefined}set previewURL(n){this._previewURL=n}get previewURL(){return this._previewURL?this._previewURL:this.url+"/thumbnail.jpg"}get publishedDateRFC(){return Cr(this.publishedDate)}get updatedDateRFC(){return Cr(this.updatedDate)}get publishedYear(){return this.publishedDate.getFullYear()}get publishedMonth(){return Tr[this.publishedDate.getMonth()]}get publishedDay(){return this.publishedDate.getDate()}get publishedMonthPadded(){return _r(this.publishedDate.getMonth()+1)}get publishedDayPadded(){return _r(this.publishedDate.getDate())}get publishedISODateOnly(){return this.publishedDate.toISOString().split("T")[0]}get volume(){const n=this.publishedYear-2015;if(n<1)throw new Error("Invalid publish date detected during computing volume");return n}get issue(){return this.publishedDate.getMonth()+1}get concatenatedAuthors(){return this.authors.length>2?this.authors[0].lastName+", et al.":2===this.authors.length?this.authors[0].lastName+" & "+this.authors[1].lastName:1===this.authors.length?this.authors[0].lastName:void 0}get bibtexAuthors(){return this.authors.map(n=>n.lastName+", "+n.firstName).join(" and ")}get slug(){let n="";return this.authors.length&&(n+=this.authors[0].lastName.toLowerCase(),n+=this.publishedYear,n+=this.title.split(" ")[0].toLowerCase()),n||"Untitled"}get bibliographyEntries(){return new Map(this.citations.map(n=>{return[n,this.bibliography.get(n)]}))}set bibliography(n){n instanceof Map?this._bibliography=n:"object"==typeof n&&(this._bibliography=Er(n))}get bibliography(){return this._bibliography}static fromObject(n){const t=new Lr;return Object.assign(t,n),t}assignToObject(n){Object.assign(n,this),n.bibliography=Ar(this.bibliographyEntries),n.url=this.url,n.doi=this.doi,n.githubUrl=this.githubUrl,n.previewURL=this.previewURL,this.publishedDate&&(n.volume=this.volume,n.issue=this.issue,n.publishedDateRFC=this.publishedDateRFC,n.publishedYear=this.publishedYear,n.publishedMonth=this.publishedMonth,n.publishedDay=this.publishedDay,n.publishedMonthPadded=this.publishedMonthPadded,n.publishedDayPadded=this.publishedDayPadded),this.updatedDate&&(n.updatedDateRFC=this.updatedDateRFC),n.concatenatedAuthors=this.concatenatedAuthors,n.bibtexAuthors=this.bibtexAuthors,n.slug=this.slug}} +// Copyright 2018 The Distill Template Authors +const Dr=n=>(class extends n{constructor(){super();const n={childList:!0,characterData:!0,subtree:!0},t=new MutationObserver(()=>{t.disconnect(),this.renderIfPossible(),t.observe(this,n)});t.observe(this,n)}connectedCallback(){super.connectedCallback(),this.renderIfPossible()}renderIfPossible(){this.textContent&&this.root&&this.renderContent()}renderContent(){console.error(`Your class ${this.constructor.name} must provide a custom renderContent() method!`)}}),Or=(n,t,e=!0)=>i=>{const r=document.createElement("template");return r.innerHTML=t,e&&"ShadyCSS"in window&&ShadyCSS.prepareTemplate(r,n),class extends i{static get is(){return n}constructor(){super(),this.clone=document.importNode(r.content,!0),e&&(this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(this.clone))}connectedCallback(){this.hasAttribute("distill-prerendered")||(e?"ShadyCSS"in window&&ShadyCSS.styleElement(this):this.insertBefore(this.clone,this.firstChild))}get root(){return e?this.shadowRoot:this}$(n){return this.root.querySelector(n)}$$(n){return this.root.querySelectorAll(n)}}}; +// Copyright 2018 The Distill Template Authors +var Ir='/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nspan.katex-display {\n text-align: left;\n padding: 8px 0 8px 0;\n margin: 0.5em 0 0.5em 1em;\n}\n\nspan.katex {\n -webkit-font-smoothing: antialiased;\n color: rgba(0, 0, 0, 0.8);\n font-size: 1.18em;\n}\n'; +// Copyright 2018 The Distill Template Authors +const Fr=function(n,t,e){let i=e,r=0;const o=n.length;for(;i[n.left,n.right]),r=n=>i.some(t=>-1!==n.indexOf(t));e.mightHaveMath=r,Pr(n,e)},qr="https://distill.pub/third-party/katex/katex.min.js",jr='',Br=Or("d-math",`\n${jr}\n\n\n`);class Yr extends(Dr(Br(HTMLElement))){static set katexOptions(n){Yr._katexOptions=n,Yr.katexOptions.delimiters&&(Yr.katexAdded?Yr.katexLoadedCallback():Yr.addKatex())}static get katexOptions(){return Yr._katexOptions||(Yr._katexOptions={delimiters:[{left:"$$",right:"$$",display:!1}]}),Yr._katexOptions}static katexLoadedCallback(){const n=document.querySelectorAll("d-math");for(const t of n)t.renderContent();Yr.katexOptions.delimiters&&zr(document.body,Yr.katexOptions)}static addKatex(){document.head.insertAdjacentHTML("beforeend",jr);const n=document.createElement("script");n.src=qr,n.async=!0,n.onload=Yr.katexLoadedCallback,n.crossorigin="anonymous",document.head.appendChild(n),Yr.katexAdded=!0}get options(){const n={displayMode:this.hasAttribute("block")};return Object.assign(n,Yr.katexOptions)}connectedCallback(){super.connectedCallback(),Yr.katexAdded||Yr.addKatex()}renderContent(){if("undefined"!=typeof katex){const n=this.root.querySelector("#katex-container");katex.render(this.textContent,n,this.options)}}}Yr.katexAdded=!1,Yr.inlineMathRendered=!1,window.DMath=Yr;class Wr extends HTMLElement{static get is(){return"d-front-matter"}constructor(){super();const n={childList:!0,characterData:!0,subtree:!0};new MutationObserver(n=>{for(const t of n)if("SCRIPT"===t.target.nodeName||"characterData"===t.type){const n=d(this);this.notify(n)}}).observe(this,n)}notify(n){const t=new CustomEvent("onFrontMatterChanged",{detail:n,bubbles:!0});document.dispatchEvent(t)}}const Gr=new Lr,Vr={frontMatter:Gr,waitingOn:{bibliography:[],citations:[]},listeners:{onCiteKeyCreated(n){const[t,e]=n.detail;if(!Gr.citationsCollected)return void Vr.waitingOn.citations.push(()=>Vr.listeners.onCiteKeyCreated(n));if(!Gr.bibliographyParsed)return void Vr.waitingOn.bibliography.push(()=>Vr.listeners.onCiteKeyCreated(n));const i=e.map(n=>Gr.citations.indexOf(n));t.numbers=i;const r=e.map(n=>Gr.bibliography.get(n));t.entries=r},onCiteKeyChanged(){Gr.citations=t(),Gr.citationsCollected=!0;for(const n of Vr.waitingOn.citations.slice())n();const n=document.querySelector("d-citation-list"),e=new Map(Gr.citations.map(n=>[n,Gr.bibliography.get(n)]));n.citations=e;const i=document.querySelectorAll("d-cite");for(const n of i){console.log(n);const t=n.keys,e=t.map(n=>Gr.citations.indexOf(n));n.numbers=e;const i=t.map(n=>Gr.bibliography.get(n));n.entries=i}},onCiteKeyRemoved(n){Vr.listeners.onCiteKeyChanged(n)},onBibliographyChanged(n){const t=document.querySelector("d-citation-list"),e=n.detail;Gr.bibliography=e,Gr.bibliographyParsed=!0;for(const n of Vr.waitingOn.bibliography.slice())n();if(Gr.citationsCollected)if(t.hasAttribute("distill-prerendered"))console.debug("Citation list was prerendered; not updating it.");else{const n=new Map(Gr.citations.map(n=>[n,Gr.bibliography.get(n)]));t.citations=n}else Vr.waitingOn.citations.push(function(){Vr.listeners.onBibliographyChanged({target:n.target,detail:n.detail})})},onFootnoteChanged(){const n=document.querySelector("d-footnote-list");if(n){const t=document.querySelectorAll("d-footnote");n.footnotes=t}},onFrontMatterChanged(t){const e=t.detail;n(Gr,e);const i=document.querySelector("d-interstitial");if(i&&("undefined"!=typeof Gr.password?i.password=Gr.password:i.parentElement.removeChild(i)),!document.body.hasAttribute("distill-prerendered")&&u()){h(document,Gr);const n=document.querySelector("distill-appendix");n&&(n.frontMatter=Gr);const t=document.querySelector("d-byline");t&&(t.frontMatter=Gr),e.katex&&(Yr.katexOptions=e.katex)}},DOMContentLoaded(){if(Vr.loaded)return void console.warn("Controller received DOMContentLoaded but was already loaded!");if(!u())return void console.warn("Controller received DOMContentLoaded at document.readyState: "+document.readyState+"!");Vr.loaded=!0,console.debug("Runlevel 4: Controller running DOMContentLoaded");const n=document.querySelector("d-front-matter");if(n){const t=d(n);Vr.listeners.onFrontMatterChanged({detail:t})}Gr.citations=t(),Gr.citationsCollected=!0;for(const n of Vr.waitingOn.citations.slice())n();if(Gr.bibliographyParsed)for(const n of Vr.waitingOn.bibliography.slice())n();const e=document.querySelector("d-footnote-list");if(e){const n=document.querySelectorAll("d-footnote");e.footnotes=n}}}}; +// Copyright 2018 The Distill Template Authors +const Kr='/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nhtml {\n font-size: 14px;\n\tline-height: 1.6em;\n /* font-family: "Libre Franklin", "Helvetica Neue", sans-serif; */\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif;\n /*, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";*/\n text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\n\n@media(min-width: 768px) {\n html {\n font-size: 16px;\n }\n}\n\nbody {\n margin: 0;\n}\n\na {\n color: #004276;\n}\n\nfigure {\n margin: 0;\n}\n\ntable {\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}\n\ntable th {\n\ttext-align: left;\n}\n\ntable thead {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\ntable thead th {\n padding-bottom: 0.5em;\n}\n\ntable tbody :first-child td {\n padding-top: 0.5em;\n}\n\npre {\n overflow: auto;\n max-width: 100%;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1em;\n}\n\nsup, sub {\n vertical-align: baseline;\n position: relative;\n top: -0.4em;\n line-height: 1em;\n}\n\nsub {\n top: 0.4em;\n}\n\n.kicker,\n.marker {\n font-size: 15px;\n font-weight: 600;\n color: rgba(0, 0, 0, 0.5);\n}\n\n\n/* Headline */\n\n@media(min-width: 1024px) {\n d-title h1 span {\n display: block;\n }\n}\n\n/* Figure */\n\nfigure {\n position: relative;\n margin-bottom: 2.5em;\n margin-top: 1.5em;\n}\n\nfigcaption+figure {\n\n}\n\nfigure img {\n width: 100%;\n}\n\nfigure svg text,\nfigure svg tspan {\n}\n\nfigcaption,\n.figcaption {\n color: rgba(0, 0, 0, 0.6);\n font-size: 12px;\n line-height: 1.5em;\n}\n\n@media(min-width: 1024px) {\nfigcaption,\n.figcaption {\n font-size: 13px;\n }\n}\n\nfigure.external img {\n background: white;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n padding: 18px;\n box-sizing: border-box;\n}\n\nfigcaption a {\n color: rgba(0, 0, 0, 0.6);\n}\n\nfigcaption b,\nfigcaption strong, {\n font-weight: 600;\n color: rgba(0, 0, 0, 1.0);\n}\n'+'/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@supports not (display: grid) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n display: block;\n padding: 8px;\n }\n}\n\n.base-grid,\ndistill-header,\nd-title,\nd-abstract,\nd-article,\nd-appendix,\ndistill-appendix,\nd-byline,\nd-footnote-list,\nd-citation-list,\ndistill-footer {\n display: grid;\n justify-items: stretch;\n grid-template-columns: [screen-start] 8px [page-start kicker-start text-start gutter-start middle-start] 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr [text-end page-end gutter-end kicker-end middle-end] 8px [screen-end];\n grid-column-gap: 8px;\n}\n\n.grid {\n display: grid;\n grid-column-gap: 8px;\n}\n\n@media(min-width: 768px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start middle-start text-start] 45px 45px 45px 45px 45px 45px 45px 45px [ kicker-end text-end gutter-start] 45px [middle-end] 45px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 16px;\n }\n\n .grid {\n grid-column-gap: 16px;\n }\n}\n\n@media(min-width: 1000px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start] 50px [middle-start] 50px [text-start kicker-end] 50px 50px 50px 50px 50px 50px 50px 50px [text-end gutter-start] 50px [middle-end] 50px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 16px;\n }\n\n .grid {\n grid-column-gap: 16px;\n }\n}\n\n@media(min-width: 1180px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start] 60px [middle-start] 60px [text-start kicker-end] 60px 60px 60px 60px 60px 60px 60px 60px [text-end gutter-start] 60px [middle-end] 60px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 32px;\n }\n\n .grid {\n grid-column-gap: 32px;\n }\n}\n\n\n\n\n.base-grid {\n grid-column: screen;\n}\n\n/* .l-body,\nd-article > * {\n grid-column: text;\n}\n\n.l-page,\nd-title > *,\nd-figure {\n grid-column: page;\n} */\n\n.l-gutter {\n grid-column: gutter;\n}\n\n.l-text,\n.l-body {\n grid-column: text;\n}\n\n.l-page {\n grid-column: page;\n}\n\n.l-body-outset {\n grid-column: middle;\n}\n\n.l-page-outset {\n grid-column: page;\n}\n\n.l-screen {\n grid-column: screen;\n}\n\n.l-screen-inset {\n grid-column: screen;\n padding-left: 16px;\n padding-left: 16px;\n}\n\n\n/* Aside */\n\nd-article aside {\n grid-column: gutter;\n font-size: 12px;\n line-height: 1.6em;\n color: rgba(0, 0, 0, 0.6)\n}\n\n@media(min-width: 768px) {\n aside {\n grid-column: gutter;\n }\n\n .side {\n grid-column: gutter;\n }\n}\n'+'/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-title {\n padding: 2rem 0 1.5rem;\n contain: layout style;\n overflow-x: hidden;\n}\n\n@media(min-width: 768px) {\n d-title {\n padding: 4rem 0 1.5rem;\n }\n}\n\nd-title h1 {\n grid-column: text;\n font-size: 40px;\n font-weight: 700;\n line-height: 1.1em;\n margin: 0 0 0.5rem;\n}\n\n@media(min-width: 768px) {\n d-title h1 {\n font-size: 50px;\n }\n}\n\nd-title p {\n font-weight: 300;\n font-size: 1.2rem;\n line-height: 1.55em;\n grid-column: text;\n}\n\nd-title .status {\n margin-top: 0px;\n font-size: 12px;\n color: #009688;\n opacity: 0.8;\n grid-column: kicker;\n}\n\nd-title .status span {\n line-height: 1;\n display: inline-block;\n padding: 6px 0;\n border-bottom: 1px solid #80cbc4;\n font-size: 11px;\n text-transform: uppercase;\n}\n'+'/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-byline {\n contain: style;\n overflow: hidden;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n font-size: 0.8rem;\n line-height: 1.8em;\n padding: 1.5rem 0;\n min-height: 1.8em;\n}\n\n\nd-byline .byline {\n grid-template-columns: 1fr 1fr;\n grid-column: text;\n}\n\n@media(min-width: 768px) {\n d-byline .byline {\n grid-template-columns: 1fr 1fr 1fr 1fr;\n }\n}\n\nd-byline .authors-affiliations {\n grid-column-end: span 2;\n grid-template-columns: 1fr 1fr;\n margin-bottom: 1em;\n}\n\n@media(min-width: 768px) {\n d-byline .authors-affiliations {\n margin-bottom: 0;\n }\n}\n\nd-byline h3 {\n font-size: 0.6rem;\n font-weight: 400;\n color: rgba(0, 0, 0, 0.5);\n margin: 0;\n text-transform: uppercase;\n}\n\nd-byline p {\n margin: 0;\n}\n\nd-byline a,\nd-article d-byline a {\n color: rgba(0, 0, 0, 0.8);\n text-decoration: none;\n border-bottom: none;\n}\n\nd-article d-byline a:hover {\n text-decoration: underline;\n border-bottom: none;\n}\n\nd-byline p.author {\n font-weight: 500;\n}\n\nd-byline .affiliations {\n\n}\n'+'/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-article {\n contain: layout style;\n overflow-x: hidden;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n padding-top: 2rem;\n color: rgba(0, 0, 0, 0.8);\n}\n\nd-article > * {\n grid-column: text;\n}\n\n@media(min-width: 768px) {\n d-article {\n font-size: 16px;\n }\n}\n\n@media(min-width: 1024px) {\n d-article {\n font-size: 1.06rem;\n line-height: 1.7em;\n }\n}\n\n\n/* H2 */\n\n\nd-article .marker {\n text-decoration: none;\n border: none;\n counter-reset: section;\n grid-column: kicker;\n line-height: 1.7em;\n}\n\nd-article .marker:hover {\n border: none;\n}\n\nd-article .marker span {\n padding: 0 3px 4px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n position: relative;\n top: 4px;\n}\n\nd-article .marker:hover span {\n color: rgba(0, 0, 0, 0.7);\n border-bottom: 1px solid rgba(0, 0, 0, 0.7);\n}\n\nd-article h2 {\n font-weight: 600;\n font-size: 24px;\n line-height: 1.25em;\n margin: 2rem 0 1.5rem 0;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n padding-bottom: 1rem;\n}\n\n@media(min-width: 1024px) {\n d-article h2 {\n font-size: 36px;\n }\n}\n\n/* H3 */\n\nd-article h3 {\n font-weight: 700;\n font-size: 18px;\n line-height: 1.4em;\n margin-bottom: 1em;\n margin-top: 2em;\n}\n\n@media(min-width: 1024px) {\n d-article h3 {\n font-size: 20px;\n }\n}\n\n/* H4 */\n\nd-article h4 {\n font-weight: 600;\n text-transform: uppercase;\n font-size: 14px;\n line-height: 1.4em;\n}\n\nd-article a {\n color: inherit;\n}\n\nd-article p,\nd-article ul,\nd-article ol,\nd-article blockquote {\n margin-top: 0;\n margin-bottom: 1em;\n margin-left: 0;\n margin-right: 0;\n}\n\nd-article blockquote {\n border-left: 2px solid rgba(0, 0, 0, 0.2);\n padding-left: 2em;\n font-style: italic;\n color: rgba(0, 0, 0, 0.6);\n}\n\nd-article a {\n border-bottom: 1px solid rgba(0, 0, 0, 0.4);\n text-decoration: none;\n}\n\nd-article a:hover {\n border-bottom: 1px solid rgba(0, 0, 0, 0.8);\n}\n\nd-article .link {\n text-decoration: underline;\n cursor: pointer;\n}\n\nd-article ul,\nd-article ol {\n padding-left: 24px;\n}\n\nd-article li {\n margin-bottom: 1em;\n margin-left: 0;\n padding-left: 0;\n}\n\nd-article li:last-child {\n margin-bottom: 0;\n}\n\nd-article pre {\n font-size: 14px;\n margin-bottom: 20px;\n}\n\nd-article hr {\n grid-column: screen;\n width: 100%;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n margin-top: 60px;\n margin-bottom: 60px;\n}\n\nd-article section {\n margin-top: 60px;\n margin-bottom: 60px;\n}\n\nd-article span.equation-mimic {\n font-family: georgia;\n font-size: 115%;\n font-style: italic;\n}\n\nd-article > d-code,\nd-article section > d-code {\n display: block;\n}\n\nd-article > d-math[block],\nd-article section > d-math[block] {\n display: block;\n}\n\n@media (max-width: 768px) {\n d-article > d-code,\n d-article section > d-code,\n d-article > d-math[block],\n d-article section > d-math[block] {\n overflow-x: scroll;\n -ms-overflow-style: none; // IE 10+\n overflow: -moz-scrollbars-none; // Firefox\n }\n\n d-article > d-code::-webkit-scrollbar,\n d-article section > d-code::-webkit-scrollbar,\n d-article > d-math[block]::-webkit-scrollbar,\n d-article section > d-math[block]::-webkit-scrollbar {\n display: none; // Safari and Chrome\n }\n}\n\nd-article .citation {\n color: #668;\n cursor: pointer;\n}\n\nd-include {\n width: auto;\n display: block;\n}\n\nd-figure {\n contain: layout style;\n}\n\n/* KaTeX */\n\n.katex, .katex-prerendered {\n contain: style;\n display: inline-block;\n}\n\n/* Tables */\n\nd-article table {\n border-collapse: collapse;\n margin-bottom: 1.5rem;\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n}\n\nd-article table th {\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n}\n\nd-article table td {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\nd-article table tr:last-of-type td {\n border-bottom: none;\n}\n\nd-article table th,\nd-article table td {\n font-size: 15px;\n padding: 2px 8px;\n}\n\nd-article table tbody :first-child td {\n padding-top: 2px;\n}\n'+Ir+'/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@media print {\n\n @page {\n size: 8in 11in;\n @bottom-right {\n content: counter(page) " of " counter(pages);\n }\n }\n\n html {\n /* no general margins -- CSS Grid takes care of those */\n }\n\n p, code {\n page-break-inside: avoid;\n }\n\n h2, h3 {\n page-break-after: avoid;\n }\n\n d-header {\n visibility: hidden;\n }\n\n d-footer {\n display: none!important;\n }\n\n}\n',Xr=[{name:"WebComponents",support:function(){return"customElements"in window&&"attachShadow"in Element.prototype&&"getRootNode"in Element.prototype&&"content"in document.createElement("template")&&"Promise"in window&&"from"in Array},url:"https://distill.pub/third-party/polyfills/webcomponents-lite.js"},{name:"IntersectionObserver",support:function(){return"IntersectionObserver"in window&&"IntersectionObserverEntry"in window},url:"https://distill.pub/third-party/polyfills/intersection-observer.js"}];class Zr{static browserSupportsAllFeatures(){return Xr.every(n=>n.support())}static load(n){const t=function(t){t.loaded=!0,console.debug("Runlevel 0: Polyfill has finished loading: "+t.name),Zr.neededPolyfills.every(n=>n.loaded)&&(console.debug("Runlevel 0: All required polyfills have finished loading."),console.debug("Runlevel 0->1."),window.distillRunlevel=1,n())};for(const n of Zr.neededPolyfills)f(n,t)}static get neededPolyfills(){return Zr._neededPolyfills||(Zr._neededPolyfills=Xr.filter(n=>!n.support())),Zr._neededPolyfills}}const Qr=Or("d-abstract",`\n\n\n\n`);class Jr extends(Qr(HTMLElement)){} +// Copyright 2018 The Distill Template Authors +const no=Or("d-appendix","\n\n\n",!1);class to extends(no(HTMLElement)){} +// Copyright 2018 The Distill Template Authors +const eo=/^\s*$/;class io extends HTMLElement{static get is(){return"d-article"}constructor(){super(),new MutationObserver(n=>{for(const t of n)for(const n of t.addedNodes)switch(n.nodeName){case"#text":{const t=n.nodeValue;if(!eo.test(t)){console.warn("Use of unwrapped text in distill articles is discouraged as it breaks layout! Please wrap any text in a or

    tag. We found the following text: "+t);const e=document.createElement("span");e.innerHTML=n.nodeValue,n.parentNode.insertBefore(e,n),n.parentNode.removeChild(n)}}}}).observe(this,{childList:!0})}}var ro="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},oo=m(function(n,t){!function(n){function t(){this.months=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],this.notKey=[",","{","}"," ","="],this.pos=0,this.input="",this.entries=new Array,this.currentEntry="",this.setInput=function(n){this.input=n},this.getEntries=function(){return this.entries},this.isWhitespace=function(n){return" "==n||"\r"==n||"\t"==n||"\n"==n},this.match=function(n,t){if(t!=undefined&&null!=t||(t=!0),this.skipWhitespace(t),this.input.substring(this.pos,this.pos+n.length)!=n)throw"Token mismatch, expected "+n+", found "+this.input.substring(this.pos);this.pos+=n.length,this.skipWhitespace(t)},this.tryMatch=function(n,t){return t!=undefined&&null!=t||(t=!0),this.skipWhitespace(t),this.input.substring(this.pos,this.pos+n.length)==n},this.matchAt=function(){for(;this.input.length>this.pos&&"@"!=this.input[this.pos];)this.pos++;return"@"==this.input[this.pos]},this.skipWhitespace=function(n){for(;this.isWhitespace(this.input[this.pos]);)this.pos++;if("%"==this.input[this.pos]&&1==n){for(;"\n"!=this.input[this.pos];)this.pos++;this.skipWhitespace(n)}},this.value_braces=function(){var n=0;this.match("{",!1);for(var t=this.pos,e=!1;;){if(!e)if("}"==this.input[this.pos]){if(!(n>0)){var i=this.pos;return this.match("}",!1),this.input.substring(t,i)}n--}else if("{"==this.input[this.pos])n++;else if(this.pos>=this.input.length-1)throw"Unterminated value";e="\\"==this.input[this.pos]&&0==e,this.pos++}},this.value_comment=function(){for(var n="",t=0;!this.tryMatch("}",!1)||0!=t;){if(n+=this.input[this.pos],"{"==this.input[this.pos]&&t++,"}"==this.input[this.pos]&&t--,this.pos>=this.input.length-1)throw"Unterminated value:"+this.input.substring(start);this.pos++}return n},this.value_quotes=function(){this.match('"',!1);for(var n=this.pos,t=!1;;){if(!t){if('"'==this.input[this.pos]){var e=this.pos;return this.match('"',!1),this.input.substring(n,e)}if(this.pos>=this.input.length-1)throw"Unterminated value:"+this.input.substring(n)}t="\\"==this.input[this.pos]&&0==t,this.pos++}},this.single_value=function(){var n=this.pos;if(this.tryMatch("{"))return this.value_braces();if(this.tryMatch('"'))return this.value_quotes();var t=this.key();if(t.match("^[0-9]+$"))return t;if(this.months.indexOf(t.toLowerCase())>=0)return t.toLowerCase();throw"Value expected:"+this.input.substring(n)+" for key: "+t},this.value=function(){var n=[];for(n.push(this.single_value());this.tryMatch("#");)this.match("#"),n.push(this.single_value());return n.join("")},this.key=function(){for(var n=this.pos;;){if(this.pos>=this.input.length)throw"Runaway key";if(this.notKey.indexOf(this.input[this.pos])>=0)return this.input.substring(n,this.pos);this.pos++}},this.key_equals_value=function(){var n=this.key();if(this.tryMatch("="))return this.match("="),[n,this.value()];throw"... = value expected, equals sign missing:"+this.input.substring(this.pos)},this.key_value_list=function(){var n=this.key_equals_value();for(this.currentEntry.entryTags={},this.currentEntry.entryTags[n[0]]=n[1];this.tryMatch(",")&&(this.match(","),!this.tryMatch("}"));)n=this.key_equals_value(),this.currentEntry.entryTags[n[0]]=n[1]},this.entry_body=function(n){this.currentEntry={},this.currentEntry.citationKey=this.key(),this.currentEntry.entryType=n.substring(1),this.match(","),this.key_value_list(),this.entries.push(this.currentEntry)},this.directive=function(){return this.match("@"),"@"+this.key()},this.preamble=function(){this.currentEntry={},this.currentEntry.entryType="PREAMBLE",this.currentEntry.entry=this.value_comment(),this.entries.push(this.currentEntry)},this.comment=function(){this.currentEntry={},this.currentEntry.entryType="COMMENT",this.currentEntry.entry=this.value_comment(),this.entries.push(this.currentEntry)},this.entry=function(n){this.entry_body(n)},this.bibtex=function(){for(;this.matchAt();){var n=this.directive();this.match("{"),"@STRING"==n?this.string():"@PREAMBLE"==n?this.preamble():"@COMMENT"==n?this.comment():this.entry(n),this.match("}")}}}n.toJSON=function(n){var e=new t;return e.setInput(n),e.bibtex(),e.entries},n.toBibtex=function(n){var t="";for(var e in n){if(t+="@"+n[e].entryType,t+="{",n[e].citationKey&&(t+=n[e].citationKey+", "),n[e].entry&&(t+=n[e].entry),n[e].entryTags){var i="";for(var r in n[e].entryTags)0!=i.length&&(i+=", "),i+=r+"= {"+n[e].entryTags[r]+"}";t+=i}t+="}\n\n"}return t}}(t)});class ao extends HTMLElement{static get is(){return"d-bibliography"}constructor(){super();const n={childList:!0,characterData:!0,subtree:!0};new MutationObserver(n=>{for(const t of n)"SCRIPT"!==t.target.nodeName&&"characterData"!==t.type||this.parseIfPossible()}).observe(this,n)}connectedCallback(){requestAnimationFrame(()=>{this.parseIfPossible()})}parseIfPossible(){const n=this.querySelector("script");if(n)if("text/bibtex"==n.type){const t=n.textContent;if(this.bibtex!==t){this.bibtex=t;const n=y(this.bibtex);this.notify(n)}}else if("text/json"==n.type){const t=new Map(JSON.parse(n.textContent));this.notify(t)}else console.warn("Unsupported bibliography script tag type: "+n.type)}notify(n){const t=new CustomEvent("onBibliographyChanged",{detail:n,bubbles:!0});this.dispatchEvent(t)}static get observedAttributes(){return["src"]}receivedBibtex(n){const t=y(n.target.response);this.notify(t)}attributeChangedCallback(n,t,e){var i=new XMLHttpRequest;i.onload=(n=>this.receivedBibtex(n)),i.onerror=(()=>console.warn(`Could not load Bibtex! (tried ${e})`)),i.responseType="text",i.open("GET",e,!0),i.send()}}class so extends HTMLElement{static get is(){return"d-byline"}set frontMatter(n){this.innerHTML=w(n)}} +// Copyright 2018 The Distill Template Authors +const lo=Or("d-cite",'\n\n\n\n\n

    \n \n
    \n');class uo extends(lo(HTMLElement)){constructor(){super(),this._numbers=[],this._entries=[]}connectedCallback(){this.outerSpan=this.root.querySelector("#citation-"),this.innerSpan=this.root.querySelector(".citation-number"),this.hoverBox=this.root.querySelector("d-hover-box"),window.customElements.whenDefined("d-hover-box").then(()=>{this.hoverBox.listen(this)}),this.numbers&&this.displayNumbers(this.numbers),this.entries&&this.displayEntries(this.entries)}static get observedAttributes(){return["key","bibtex-key"]}attributeChangedCallback(n,t,e){const i=t?"onCiteKeyChanged":"onCiteKeyCreated",r=e.split(",").map(n=>n.trim()),o=new CustomEvent(i,{detail:[this,r],bubbles:!0});document.dispatchEvent(o)}set key(n){this.setAttribute("key",n)}get key(){return this.getAttribute("key")||this.getAttribute("bibtex-key")}get keys(){const n=this.key.split(",");return console.log(n),n}set numbers(n){this._numbers=n,this.displayNumbers(n)}get numbers(){return this._numbers}displayNumbers(n){if(!this.innerSpan)return;const t="["+n.map(n=>-1==n?"?":n+1+"").join(", ")+"]";this.innerSpan.textContent=t}set entries(n){this._entries=n,this.displayEntries(n)}get entries(){return this._entries}displayEntries(n){this.hoverBox&&(this.hoverBox.innerHTML=`
      \n ${n.map(l).map(n=>`
    • ${n}
    • `).join("\n")}\n
    `)}} +// Copyright 2018 The Distill Template Authors +const co="\nd-citation-list {\n contain: style;\n}\n\nd-citation-list .references {\n grid-column: text;\n}\n\nd-citation-list .references .title {\n font-weight: 500;\n}\n";class ho extends HTMLElement{static get is(){return"d-citation-list"}connectedCallback(){this.hasAttribute("distill-prerendered")||(this.style.display="none")}set citations(n){x(this,n)}}var po=m(function(n){var t=function(n){function t(n,t,e,i,r){this.type=n,this.content=t,this.alias=e,this.length=0|(i||"").length,this.greedy=!!r}function e(n,i,a,s,l,u,d){for(var h in a)if(a.hasOwnProperty(h)&&a[h]){var p=a[h];p=Array.isArray(p)?p:[p];for(var f=0;fn.length)return;if(!(M instanceof t)){var T=1;if(y&&k!=i.tail.prev){if(g.lastIndex=S,!(N=g.exec(n)))break;var _=N.index+(b&&N[1]?N[1].length:0),C=N.index+N[0].length,A=S;for(A+=k.value.length;_>=A;)A+=(k=k.next).value.length;if(S=A-=k.value.length,k.value instanceof t)continue;for(var E=k;E!==i.tail&&(A1&&e(n,i,a,k.prev,S,!0,h+","+f),u)break}else if(u)break}}}}}function i(){var n={value:null,prev:null,next:null},t={value:null,prev:n,next:null};n.next=t,this.head=n,this.tail=t,this.length=0}function r(n,t,e){var i=t.next,r={value:e,prev:t,next:i};return t.next=r,i.prev=r,n.length++,r}function o(n,t,e){for(var i=t.next,r=0;r"+i.content+""},!n.document)return n.addEventListener?(c.disableWorkerMessageHandler||n.addEventListener("message",function(t){var e=JSON.parse(t.data),i=e.language,r=e.code,o=e.immediateClose;n.postMessage(c.highlight(r,c.languages[i],i)),o&&n.close()},!1),c):c;var d=c.util.currentScript();if(d&&(c.filename=d.src,d.hasAttribute("data-manual")&&(c.manual=!0)),!c.manual){var h=document.readyState;"loading"===h||"interactive"===h&&d&&d.defer?document.addEventListener("DOMContentLoaded",s):window.requestAnimationFrame?window.requestAnimationFrame(s):window.setTimeout(s,16)}return c}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});n.exports&&(n.exports=t),void 0!==ro&&(ro.Prism=t),t.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:(?!)*\]\s*)?>/i,greedy:!0},cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},t.languages.markup.tag.inside["attr-value"].inside.entity=t.languages.markup.entity,t.hooks.add("wrap",function(n){"entity"===n.type&&(n.attributes.title=n.content.replace(/&/,"&"))}),Object.defineProperty(t.languages.markup.tag,"addInlined",{value:function(n,e){var i={};i["language-"+e]={pattern:/(^$)/i,lookbehind:!0,inside:t.languages[e]},i.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:i}};r["language-"+e]={pattern:/[\s\S]+/,inside:t.languages[e]};var o={};o[n]={pattern:RegExp(/(<__[\s\S]*?>)(?:\s*|[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return n}),"i"),lookbehind:!0,greedy:!0,inside:r},t.languages.insertBefore("markup","cdata",o)}}),t.languages.xml=t.languages.extend("markup",{}),t.languages.html=t.languages.markup,t.languages.mathml=t.languages.markup,t.languages.svg=t.languages.markup,function(n){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;n.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+[\s\S]*?(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\((?!\s*\))\s*)(?:[^()]|\((?:[^()]|\([^()]*\))*\))+?(?=\s*\))/,lookbehind:!0,alias:"selector"}}},url:{pattern:RegExp("url\\((?:"+t.source+"|[^\n\r()]*)\\)","i"),greedy:!0,inside:{"function":/^url/i,punctuation:/^\(|\)$/}},selector:RegExp("[^{}\\s](?:[^{};\"']|"+t.source+")*?(?=\\s*\\{)"),string:{pattern:t,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/!important\b/i,"function":/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:,]/},n.languages.css.atrule.inside.rest=n.languages.css;var e=n.languages.markup;e&&(e.tag.addInlined("style","css"),n.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:e.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:n.languages.css}},alias:"language-css"}},e.tag))}(t),t.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,"function":/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},t.languages.javascript=t.languages.extend("clike",{"class-name":[t.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,"function":/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,operator:/--|\+\+|\*\*=?|=>|&&|\|\||[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?[.?]?|[~:]/}),t.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,t.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*[\s\S]*?\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,lookbehind:!0,inside:t.languages.javascript},{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,inside:t.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/,lookbehind:!0,inside:t.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/,lookbehind:!0,inside:t.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),t.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:t.languages.javascript}},string:/[\s\S]+/}}}),t.languages.markup&&t.languages.markup.tag.addInlined("script","javascript"),t.languages.js=t.languages.javascript,"undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector&&(self.Prism.fileHighlight=function(n){n=n||document;var e={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"};Array.prototype.slice.call(n.querySelectorAll("pre[data-src]")).forEach(function(n){if(!n.hasAttribute("data-src-loaded")){for(var i,r=n.getAttribute("data-src"),o=n,a=/\blang(?:uage)?-([\w-]+)\b/i;o&&!a.test(o.className);)o=o.parentNode;if(o&&(i=(n.className.match(a)||[,""])[1]),!i){var s=(r.match(/\.(\w+)$/)||[,""])[1];i=e[s]||s}var l=document.createElement("code");l.className="language-"+i,n.textContent="",l.textContent="Loading\u2026",n.appendChild(l);var u=new XMLHttpRequest;u.open("GET",r,!0),u.onreadystatechange=function(){4==u.readyState&&(u.status<400&&u.responseText?(l.textContent=u.responseText,t.highlightElement(l),n.setAttribute("data-src-loaded","")):u.status>=400?l.textContent="\u2716 Error "+u.status+" while fetching file: "+u.statusText:l.textContent="\u2716 Error: File does not exist or is empty")},u.send(null)}})},document.addEventListener("DOMContentLoaded",function(){self.Prism.fileHighlight()}))});Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},"string-interpolation":{pattern:/(?:f|rf|fr)(?:("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:{{)*){(?!{)(?:[^{}]|{(?!{)(?:[^{}]|{(?!{)(?:[^{}])+})+})+}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|rb|br)?("""|''')[\s\S]+?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|rb|br)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},"function":{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^\s*)@\w+(?:\.\w+)*/im,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:True|False|None)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python,Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,"function":/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},Prism.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[\s\S]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+\.?[a-f\d]*(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|\.?\d*(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,"function":/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/},function(n){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",e={environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|-=|\+\+?|\+=|!=?|~|\*\*?|\*=|\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/};n.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)\w+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b\w+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+?)\s*(?:\r?\n|\r)[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:e},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s*(?:\r?\n|\r)[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\](?:\\\\)*)(["'])(?:\\[\s\S]|\$\([^)]+\)|`[^`]+`|(?!\2)[^\\])*\2/,lookbehind:!0,greedy:!0,inside:e}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:e.variable,"function":{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:true|false)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|==?|!=?|=~|<<[<-]?|[&\d]?>>|\d?[<>]&?|&[>&]?|\|[&|]?|<=?|>=?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}};for(var i=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],r=e.variable[1].inside,o=0;o(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,number:/(?:\b0x[a-f\d]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[-+]?\d+)?)i?/i,string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0}}),delete Prism.languages.go["class-name"],function(n){function t(n,t){return n=n.replace(//g,function(){return e}),t&&(n=n+"|"+n.replace(/_/g,"\\*")),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+n+")")}var e=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?!\n|\r\n?))/.source,i=/(?:\\.|``.+?``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,r=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|$)/.source.replace(/__/g,function(){return i}),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;n.languages.markdown=n.languages.extend("markup",{}),n.languages.insertBefore("markdown","prolog",{blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+r+o+"(?:"+r+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+r+o+")(?:"+r+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(i),inside:n.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+r+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+r+"$"),inside:{"table-header":{pattern:RegExp(i),alias:"important",inside:n.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/``.+?``|`[^`\r\n]+`/,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#+.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:t(/__(?:(?!_)|_(?:(?!_))+_)+__/.source,!0),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:t(/_(?:(?!_)|__(?:(?!_))+__)+_/.source,!0),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:t(/(~~?)(?:(?!~))+?\2/.source,!1),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},url:{pattern:t(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)| ?\[(?:(?!\]))+\])/.source,!1),lookbehind:!0,greedy:!0,inside:{variable:{pattern:/(\[)[^\]]+(?=\]$)/,lookbehind:!0},content:{pattern:/(^!?\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},string:{pattern:/"(?:\\.|[^"\\])*"(?=\)$)/}}}}),["url","bold","italic","strike"].forEach(function(t){["url","bold","italic","strike"].forEach(function(e){t!==e&&(n.languages.markdown[t].inside.content.inside[e]=n.languages.markdown[e])})}),n.hooks.add("after-tokenize",function(n){function t(n){if(n&&"string"!=typeof n)for(var e=0,i=n.length;e]?|<(?:<=?|[=:])?|>(?:=|>>?=?)?|==?=?|[~\u2260\u2264\u2265]/,punctuation:/[{}[\];(),.:]/,constant:/\b(?:(?:NaN|Inf)(?:16|32|64)?)\b/}; +// Copyright 2018 The Distill Template Authors +const fo=Or("d-code",`\n\n\n\n\n`);class go extends(Dr(fo(HTMLElement))){renderContent(){if(this.languageName=this.getAttribute("language"),!this.languageName)return void console.warn('You need to provide a language attribute to your block to let us know how to highlight your code; e.g.:\n zeros = np.zeros(shape).');const n=po.languages[this.languageName];if(n==undefined)return void console.warn(`Distill does not yet support highlighting your code block in "${this.languageName}'.`);let t=this.textContent;const e=this.shadowRoot.querySelector("#code-container");if(this.hasAttribute("block")){const n=(t=t.replace(/\n/,"")).match(/\s*/);if(t=(t=t.replace(new RegExp("\n"+n,"g"),"\n")).trim(),e.parentNode instanceof ShadowRoot){const n=document.createElement("pre");this.shadowRoot.removeChild(e),n.appendChild(e),this.shadowRoot.appendChild(n)}}e.className=`language-${this.languageName}`,e.innerHTML=po.highlight(t,n)}} +// Copyright 2018 The Distill Template Authors +const mo=Or("d-footnote",'\n\n\n\n
    \n \n
    \n
    \n\n\n \n\n\n');class bo extends(mo(HTMLElement)){constructor(){super();const n={childList:!0,characterData:!0,subtree:!0};new MutationObserver(this.notify).observe(this,n)}notify(){const n=new CustomEvent("onFootnoteChanged",{detail:this,bubbles:!0});document.dispatchEvent(n)}connectedCallback(){this.hoverBox=this.root.querySelector("d-hover-box"),window.customElements.whenDefined("d-hover-box").then(()=>{this.hoverBox.listen(this)}),bo.currentFootnoteId+=1;const n=bo.currentFootnoteId.toString();this.root.host.id="d-footnote-"+n;const t="dt-fn-hover-box-"+n;this.hoverBox.id=t;const e=this.root.querySelector("#fn-");e.setAttribute("id","fn-"+n),e.setAttribute("data-hover-ref",t),e.textContent=n}}bo.currentFootnoteId=0; +// Copyright 2018 The Distill Template Authors +const yo=Or("d-footnote-list","\n\n\n

    Footnotes

    \n
      \n",!1);class vo extends(yo(HTMLElement)){connectedCallback(){super.connectedCallback(),this.list=this.root.querySelector("ol"),this.root.style.display="none"}set footnotes(n){if(this.list.innerHTML="",n.length){this.root.style.display="";for(const t of n){const n=document.createElement("li");n.id=t.id+"-listing",n.innerHTML=t.innerHTML;const e=document.createElement("a");e.setAttribute("class","footnote-backlink"),e.textContent="[\u21a9]",e.href="#"+t.id,n.appendChild(e),this.list.appendChild(n)}}else this.root.style.display="none"}} +// Copyright 2018 The Distill Template Authors +const wo=Or("d-hover-box",'\n\n\n
      \n
      \n \n
      \n
      \n');class xo extends(wo(HTMLElement)){constructor(){super()}connectedCallback(){}listen(n){this.bindDivEvents(this),this.bindTriggerEvents(n)}bindDivEvents(n){n.addEventListener("mouseover",()=>{this.visible||this.showAtNode(n),this.stopTimeout()}),n.addEventListener("mouseout",()=>{this.extendTimeout(500)}),n.addEventListener("touchstart",n=>{n.stopPropagation()},{passive:!0}),document.body.addEventListener("touchstart",()=>{this.hide()},{passive:!0})}bindTriggerEvents(n){n.addEventListener("mouseover",()=>{this.visible||this.showAtNode(n),this.stopTimeout()}),n.addEventListener("mouseout",()=>{this.extendTimeout(300)}),n.addEventListener("touchstart",t=>{this.visible?this.hide():this.showAtNode(n),t.stopPropagation()},{passive:!0})}show(n){this.visible=!0,this.style.display="block",this.style.top=Math.round(n[1]+10)+"px"}showAtNode(n){const t=n.getBoundingClientRect();this.show([n.offsetLeft+t.width,n.offsetTop+t.height])}hide(){this.visible=!1,this.style.display="none",this.stopTimeout()}stopTimeout(){this.timeout&&clearTimeout(this.timeout)}extendTimeout(n){this.stopTimeout(),this.timeout=setTimeout(()=>{this.hide()},n)}} +// Copyright 2018 The Distill Template Authors +class ko extends HTMLElement{static get is(){return"d-title"}} +// Copyright 2018 The Distill Template Authors +const So=Or("d-references","\n\n",!1);class Mo extends(So(HTMLElement)){} +// Copyright 2018 The Distill Template Authors +class To extends HTMLElement{static get is(){return"d-toc"}connectedCallback(){this.getAttribute("prerendered")||(window.onload=(()=>{k(this,document.querySelector("d-article").querySelectorAll("h2, h3"))}))}}class _o extends HTMLElement{static get is(){return"d-figure"}static get readyQueue(){return _o._readyQueue||(_o._readyQueue=[]),_o._readyQueue}static addToReadyQueue(n){-1===_o.readyQueue.indexOf(n)&&(_o.readyQueue.push(n),_o.runReadyQueue())}static runReadyQueue(){const n=_o.readyQueue.sort((n,t)=>n._seenOnScreen-t._seenOnScreen).filter(n=>!n._ready).pop();n&&(n.ready(),requestAnimationFrame(_o.runReadyQueue))}constructor(){super(),this._ready=!1,this._onscreen=!1,this._offscreen=!0}connectedCallback(){this.loadsWhileScrolling=this.hasAttribute("loadsWhileScrolling"),_o.marginObserver.observe(this),_o.directObserver.observe(this)}disconnectedCallback(){_o.marginObserver.unobserve(this),_o.directObserver.unobserve(this)}static get marginObserver(){if(!_o._marginObserver){const n=window.innerHeight,t=Math.floor(2*n),e={rootMargin:t+"px 0px "+t+"px 0px",threshold:.01},i=_o.didObserveMarginIntersection,r=new IntersectionObserver(i,e);_o._marginObserver=r}return _o._marginObserver}static didObserveMarginIntersection(n){for(const t of n){const n=t.target;t.isIntersecting&&!n._ready&&_o.addToReadyQueue(n)}}static get directObserver(){return _o._directObserver||(_o._directObserver=new IntersectionObserver(_o.didObserveDirectIntersection,{rootMargin:"0px",threshold:[0,1]})),_o._directObserver}static didObserveDirectIntersection(n){for(const t of n){const n=t.target;t.isIntersecting?(n._seenOnScreen=new Date,n._offscreen&&n.onscreen()):n._onscreen&&n.offscreen()}}addEventListener(n,t){super.addEventListener(n,t),"ready"===n&&-1!==_o.readyQueue.indexOf(this)&&(this._ready=!1,_o.runReadyQueue()),"onscreen"===n&&this.onscreen()}ready(){this._ready=!0,_o.marginObserver.unobserve(this);const n=new CustomEvent("ready");this.dispatchEvent(n)}onscreen(){this._onscreen=!0,this._offscreen=!1;const n=new CustomEvent("onscreen");this.dispatchEvent(n)}offscreen(){this._onscreen=!1,this._offscreen=!0;const n=new CustomEvent("offscreen");this.dispatchEvent(n)}}if("undefined"!=typeof window){let n;_o.isScrolling=!1;const t=()=>{_o.isScrolling=!0,clearTimeout(n),n=setTimeout(()=>{_o.isScrolling=!1,_o.runReadyQueue()},500)};window.addEventListener("scroll",t,!0)} +// Copyright 2018 The Distill Template Authors +const Co="distill.pub",Ao=Or("d-interstitial",'\n\n\n
      \n
      \n

      This article is in review.

      \n

      Do not share this URL or the contents of this article. Thank you!

      \n \n

      Enter the password we shared with you as part of the review process to view the article.

      \n
      \n
      \n');class Eo extends(Ao(HTMLElement)){connectedCallback(){if(this.shouldRemoveSelf())this.parentElement.removeChild(this);else{this.root.querySelector("#interstitial-password-input").oninput=(n=>this.passwordChanged(n))}}passwordChanged(n){n.target.value===this.password&&(console.log("Correct password entered."),this.parentElement.removeChild(this),"undefined"!=typeof Storage&&(console.log("Saved that correct password was entered."),localStorage.setItem(this.localStorageIdentifier(),"true")))}shouldRemoveSelf(){return window&&window.location.hostname===Co?(console.warn("Interstitial found on production, hiding it."),!0):"undefined"!=typeof Storage&&"true"===localStorage.getItem(this.localStorageIdentifier())&&(console.log("Loaded that correct password was entered before; skipping interstitial."),!0)}localStorageIdentifier(){const n="interstitial-password-correct";return"distill-drafts"+(window?window.location.pathname:"-")+n}}var No=M(S).right,Lo=Math.sqrt(50),Do=Math.sqrt(10),Oo=Math.sqrt(2),Io=.7,Fo=1/Io,Ro="\\s*([+-]?\\d+)\\s*",Uo="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",$o="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Po=/^#([0-9a-f]{3,8})$/,Ho=new RegExp("^rgb\\("+[Ro,Ro,Ro]+"\\)$"),zo=new RegExp("^rgb\\("+[$o,$o,$o]+"\\)$"),qo=new RegExp("^rgba\\("+[Ro,Ro,Ro,Uo]+"\\)$"),jo=new RegExp("^rgba\\("+[$o,$o,$o,Uo]+"\\)$"),Bo=new RegExp("^hsl\\("+[Uo,$o,$o]+"\\)$"),Yo=new RegExp("^hsla\\("+[Uo,$o,$o,Uo]+"\\)$"),Wo={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};L(O,U,{copy:function(n){return Object.assign(new this.constructor,this,n)},displayable:function(){return this.rgb().displayable()},hex:I,formatHex:I,formatHsl:F,formatRgb:R,toString:R}),L(q,z,D(O,{brighter:function(n){return n=null==n?Fo:Math.pow(Fo,n),new q(this.r*n,this.g*n,this.b*n,this.opacity)},darker:function(n){return n=null==n?Io:Math.pow(Io,n),new q(this.r*n,this.g*n,this.b*n,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:j,formatHex:j,formatRgb:B,toString:B})),L(K,V,D(O,{brighter:function(n){return n=null==n?Fo:Math.pow(Fo,n),new K(this.h,this.s,this.l*n,this.opacity)},darker:function(n){return n=null==n?Io:Math.pow(Io,n),new K(this.h,this.s,this.l*n,this.opacity)},rgb:function(){var n=this.h%360+360*(this.h<0),t=isNaN(n)||isNaN(this.s)?0:this.s,e=this.l,i=e+(e<.5?e:1-e)*t,r=2*e-i;return new q(X(n>=240?n-240:n+120,r,i),X(n,r,i),X(n<120?n+240:n-120,r,i),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 n=this.opacity;return(1===(n=isNaN(n)?1:Math.max(0,Math.min(1,n)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===n?")":", "+n+")")}}));var Go=Math.PI/180,Vo=180/Math.PI,Ko=18,Xo=.96422,Zo=1,Qo=.82521,Jo=4/29,na=6/29,ta=3*na*na,ea=na*na*na;L(J,Q,D(O,{brighter:function(n){return new J(this.l+Ko*(null==n?1:n),this.a,this.b,this.opacity)},darker:function(n){return new J(this.l-Ko*(null==n?1:n),this.a,this.b,this.opacity)},rgb:function(){var n=(this.l+16)/116,t=isNaN(this.a)?n:n+this.a/500,e=isNaN(this.b)?n:n-this.b/200;return new q(en(3.1338561*(t=Xo*tn(t))-1.6168667*(n=Zo*tn(n))-.4906146*(e=Qo*tn(e))),en(-.9787684*t+1.9161415*n+.033454*e),en(.0719453*t-.2289914*n+1.4052427*e),this.opacity)}})),L(sn,an,D(O,{brighter:function(n){return new sn(this.h,this.c,this.l+Ko*(null==n?1:n),this.opacity)},darker:function(n){return new sn(this.h,this.c,this.l-Ko*(null==n?1:n),this.opacity)},rgb:function(){return ln(this).rgb()}}));var ia=-.14861,ra=1.78277,oa=-.29227,aa=-.90649,sa=1.97294,la=sa*aa,ua=sa*ra,ca=ra*oa-aa*ia;L(dn,cn,D(O,{brighter:function(n){return n=null==n?Fo:Math.pow(Fo,n),new dn(this.h,this.s,this.l*n,this.opacity)},darker:function(n){return n=null==n?Io:Math.pow(Io,n),new dn(this.h,this.s,this.l*n,this.opacity)},rgb:function(){var n=isNaN(this.h)?0:(this.h+120)*Go,t=+this.l,e=isNaN(this.s)?0:this.s*t*(1-t),i=Math.cos(n),r=Math.sin(n);return new q(255*(t+e*(ia*i+ra*r)),255*(t+e*(oa*i+aa*r)),255*(t+e*(sa*i)),this.opacity)}}));var da,ha=function gs(n){function t(n,t){var i=e((n=z(n)).r,(t=z(t)).r),r=e(n.g,t.g),o=e(n.b,t.b),a=mn(n.opacity,t.opacity);return function(t){return n.r=i(t),n.g=r(t),n.b=o(t),n.opacity=a(t),n+""}}var e=gn(n);return t.gamma=gs,t}(1),pa=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,fa=new RegExp(pa.source,"g"),ga=[0,1],ma=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;qn.prototype=jn.prototype,jn.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===undefined?"":Math.max(1,0|this.width))+(this.comma?",":"")+(this.precision===undefined?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var ba,ya,va,wa={"%":function(n,t){return(100*n).toFixed(t)},b:function(n){return Math.round(n).toString(2)},c:function(n){return n+""},d:function(n){return Math.round(n).toString(10)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},g:function(n,t){return n.toPrecision(t)},o:function(n){return Math.round(n).toString(8)},p:function(n,t){return Wn(100*n,t)},r:Wn,s:Yn,X:function(n){return Math.round(n).toString(16).toUpperCase()},x:function(n){return Math.round(n).toString(16)}},xa=Array.prototype.map,ka=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];Kn({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});var Sa=new Date,Ma=new Date,Ta=et(function(){},function(n,t){n.setTime(+n+t)},function(n,t){return t-n});Ta.every=function(n){return n=Math.floor(n),isFinite(n)&&n>0?n>1?et(function(t){t.setTime(Math.floor(t/n)*n)},function(t,e){t.setTime(+t+e*n)},function(t,e){return(e-t)/n}):Ta:null};var _a=1e3,Ca=6e4,Aa=36e5,Ea=864e5,Na=6048e5,La=(et(function(n){n.setTime(n-n.getMilliseconds())},function(n,t){n.setTime(+n+t*_a)},function(n,t){return(t-n)/_a},function(n){return n.getUTCSeconds()}),et(function(n){n.setTime(n-n.getMilliseconds()-n.getSeconds()*_a)},function(n,t){n.setTime(+n+t*Ca)},function(n,t){return(t-n)/Ca},function(n){return n.getMinutes()}),et(function(n){n.setTime(n-n.getMilliseconds()-n.getSeconds()*_a-n.getMinutes()*Ca)},function(n,t){n.setTime(+n+t*Aa)},function(n,t){return(t-n)/Aa},function(n){return n.getHours()}),et(function(n){n.setHours(0,0,0,0)},function(n,t){n.setDate(n.getDate()+t)},function(n,t){return(t-n-(t.getTimezoneOffset()-n.getTimezoneOffset())*Ca)/Ea},function(n){return n.getDate()-1})),Da=it(0),Oa=it(1),Ia=(it(2),it(3),it(4)),Fa=(it(5),it(6),et(function(n){n.setDate(1),n.setHours(0,0,0,0)},function(n,t){n.setMonth(n.getMonth()+t)},function(n,t){return t.getMonth()-n.getMonth()+12*(t.getFullYear()-n.getFullYear())},function(n){return n.getMonth()}),et(function(n){n.setMonth(0,1),n.setHours(0,0,0,0)},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n,t){return t.getFullYear()-n.getFullYear()},function(n){return n.getFullYear()}));Fa.every=function(n){return isFinite(n=Math.floor(n))&&n>0?et(function(t){t.setFullYear(Math.floor(t.getFullYear()/n)*n),t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,e){t.setFullYear(t.getFullYear()+e*n)}):null};et(function(n){n.setUTCSeconds(0,0)},function(n,t){n.setTime(+n+t*Ca)},function(n,t){return(t-n)/Ca},function(n){return n.getUTCMinutes()}),et(function(n){n.setUTCMinutes(0,0,0)},function(n,t){n.setTime(+n+t*Aa)},function(n,t){return(t-n)/Aa},function(n){return n.getUTCHours()});var Ra=et(function(n){n.setUTCHours(0,0,0,0)},function(n,t){n.setUTCDate(n.getUTCDate()+t)},function(n,t){return(t-n)/Ea},function(n){return n.getUTCDate()-1}),Ua=rt(0),$a=rt(1),Pa=(rt(2),rt(3),rt(4)),Ha=(rt(5),rt(6),et(function(n){n.setUTCDate(1),n.setUTCHours(0,0,0,0)},function(n,t){n.setUTCMonth(n.getUTCMonth()+t)},function(n,t){return t.getUTCMonth()-n.getUTCMonth()+12*(t.getUTCFullYear()-n.getUTCFullYear())},function(n){return n.getUTCMonth()}),et(function(n){n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},function(n,t){n.setUTCFullYear(n.getUTCFullYear()+t)},function(n,t){return t.getUTCFullYear()-n.getUTCFullYear()},function(n){return n.getUTCFullYear()}));Ha.every=function(n){return isFinite(n=Math.floor(n))&&n>0?et(function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/n)*n),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e*n)}):null};var za,qa,ja,Ba={"-":"",_:" ",0:"0"},Ya=/^\s*\d+/,Wa=/^%/,Ga=/[\\^$*+?|[\]().{}]/g;me({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 Va="%Y-%m-%dT%H:%M:%S.%LZ",Ka=(Date.prototype.toISOString||qa(Va),+new Date("2000-01-01T00:00:00.000Z")||ja(Va),{value:function(){}});we.prototype=ve.prototype={constructor:we,on:function(n,t){var e,i=this._,r=xe(n+"",i),o=-1,a=r.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++o0)for(var e,i,r=new Array(e),o=0;o=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(n){return this._names.indexOf(n)>=0}};var Ja={},ns=null;"undefined"!=typeof document&&("onmouseenter"in document.documentElement||(Ja={mouseenter:"mouseover",mouseleave:"mouseout"}));var ts=[null];or.prototype=ar.prototype={constructor:or,select:Ne,selectAll:Oe,filter:Fe,data:qe,enter:Ue,exit:je,join:Be,merge:Ye,order:We,sort:Ge,call:Ke,nodes:Xe,node:Ze,size:Qe,empty:Je,each:ni,attr:si,style:hi,property:bi,classed:_i,text:Ni,html:Ii,raise:Ri,lower:$i,append:Pi,insert:zi,remove:ji,clone:Wi,datum:Gi,on:Ji,dispatch:rr},br.prototype.on=function(){var n=this._.on.apply(this._,arguments);return n===this._?this:n};const es=Or("d-slider","\n\n\n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n"),is={left:37,up:38,right:39,down:40,pageUp:33,pageDown:34,end:35,home:36};class rs extends(es(HTMLElement)){connectedCallback(){this.connected=!0,this.setAttribute("role","slider"),this.hasAttribute("tabindex")||this.setAttribute("tabindex",0),this.mouseEvent=!1,this.knob=this.root.querySelector(".knob-container"),this.background=this.root.querySelector(".background"),this.trackFill=this.root.querySelector(".track-fill"),this.track=this.root.querySelector(".track"),this.min=this.min?this.min:0,this.max=this.max?this.max:100,this.scale=tt().domain([this.min,this.max]).range([0,1]).clamp(!0),this.origin=this.origin!==undefined?this.origin:this.min,this.step=this.step?this.step:1,this.update(this.value?this.value:0),this.ticks=!!this.ticks&&this.ticks,this.renderTicks(),this.drag=kr().container(this.background).on("start",()=>{this.mouseEvent=!0,this.background.classList.add("mousedown"),this.changeValue=this.value,this.dragUpdate()}).on("drag",()=>{this.dragUpdate()}).on("end",()=>{this.mouseEvent=!1,this.background.classList.remove("mousedown"),this.dragUpdate(),this.changeValue!==this.value&&this.dispatchChange(),this.changeValue=this.value}),this.drag(sr(this.background)),this.addEventListener("focusin",()=>{this.mouseEvent||this.background.classList.add("focus")}),this.addEventListener("focusout",()=>{this.background.classList.remove("focus")}),this.addEventListener("keydown",this.onKeyDown)}static get observedAttributes(){return["min","max","value","step","ticks","origin","tickValues","tickLabels"]}attributeChangedCallback(n,t,e){isNaN(e)||e===undefined||null===e||("min"==n&&(this.min=+e,this.setAttribute("aria-valuemin",this.min)),"max"==n&&(this.max=+e,this.setAttribute("aria-valuemax",this.max)),"value"==n&&this.update(+e),"origin"==n&&(this.origin=+e),"step"==n&&e>0&&(this.step=+e),"ticks"==n&&(this.ticks=""===e||e))}onKeyDown(n){this.changeValue=this.value;let t=!1;switch(n.keyCode){case is.left:case is.down:this.update(this.value-this.step),t=!0;break;case is.right:case is.up:this.update(this.value+this.step),t=!0;break;case is.pageUp:case is.pageDown:this.update(this.value+10*this.step),t=!0;break;case is.home:this.update(this.min),t=!0;break;case is.end:this.update(this.max),t=!0}t&&(this.background.classList.add("focus"),n.preventDefault(),n.stopPropagation(),this.changeValue!==this.value&&this.dispatchChange())}validateValueRange(n,t,e){return Math.max(Math.min(t,e),n)}quantizeValue(n,t){return Math.round(n/t)*t}dragUpdate(){const n=this.background.getBoundingClientRect(),t=ns.x,e=n.width;this.update(this.scale.invert(t/e))}update(n){let t=n;"any"!==this.step&&(t=this.quantizeValue(n,this.step)),t=this.validateValueRange(this.min,this.max,t),this.connected&&(this.knob.style.left=100*this.scale(t)+"%",this.trackFill.style.width=100*this.scale(this.min+Math.abs(t-this.origin))+"%",this.trackFill.style.left=100*this.scale(Math.min(t,this.origin))+"%"),this.value!==t&&(this.value=t,this.setAttribute("aria-valuenow",this.value),this.dispatchInput())}dispatchChange(){const n=new Event("change");this.dispatchEvent(n,{})}dispatchInput(){const n=new Event("input");this.dispatchEvent(n,{})}renderTicks(){const n=this.root.querySelector(".ticks");if(!1!==this.ticks){let t=[];(t=this.ticks>0?this.scale.ticks(this.ticks):"any"===this.step?this.scale.ticks():_(this.min,this.max+1e-6,this.step)).forEach(t=>{const e=document.createElement("div");e.classList.add("tick"),e.style.left=100*this.scale(t)+"%",n.appendChild(e)})}else n.style.display="none"}}var os='\n \n\n';const as=Or("distill-header",`\n\n\n`,!1); +// Copyright 2018 The Distill Template Authors +class ss extends(as(HTMLElement)){} +// Copyright 2018 The Distill Template Authors +const ls="\n\n";class us extends HTMLElement{static get is(){return"distill-appendix"}set frontMatter(n){this.innerHTML=Sr(n)}}const cs=Or("distill-footer",`\n\n\n\n\n`); +// Copyright 2018 The Distill Template Authors +class ds extends(cs(HTMLElement)){} +// Copyright 2018 The Distill Template Authors +let hs=!1,ps=0;const fs=function(){if(window.distill.runlevel<1)throw new Error("Insufficient Runlevel for Distill Template!");if("distill"in window&&window.distill.templateIsLoading)throw new Error("Runlevel 1: Distill Template is getting loaded more than once, aborting!");window.distill.templateIsLoading=!0,console.debug("Runlevel 1: Distill Template has started loading."),p(document),console.debug("Runlevel 1: Static Distill styles have been added."),console.debug("Runlevel 1->2."),window.distill.runlevel+=1;for(const[n,t]of Object.entries(Vr.listeners))"function"==typeof t?document.addEventListener(n,t):console.error("Runlevel 2: Controller listeners need to be functions!");console.debug("Runlevel 2: We can now listen to controller events."),console.debug("Runlevel 2->3."),window.distill.runlevel+=1;const n=[Jr,to,io,ao,so,uo,ho,go,bo,vo,Wr,xo,ko,Yr,Mo,To,_o,rs,Eo],t=[ss,us,ds];if(window.distill.runlevel<2)throw new Error("Insufficient Runlevel for adding custom elements!");const e=n.concat(t);for(const n of e)console.debug("Runlevel 2: Registering custom element: "+n.is),customElements.define(n.is,n);console.debug("Runlevel 3: Distill Template finished registering custom elements."),console.debug("Runlevel 3->4."),window.distill.runlevel+=1,u()&&Vr.listeners.DOMContentLoaded(),console.debug("Runlevel 4: Distill Template initialisation complete."),window.distill.templateIsLoading=!1,window.distill.templateHasLoaded=!0};window.distill={runlevel:ps,initialize:fs,templateIsLoading:hs},Zr.browserSupportsAllFeatures()?(console.debug("Runlevel 0: No need for polyfills."),console.debug("Runlevel 0->1."),window.distill.runlevel+=1,window.distill.initialize()):(console.debug("Runlevel 0: Distill Template is loading polyfills."),Zr.load(window.distill.initialize))}); \ No newline at end of file diff --git a/assets/js/distillpub/transforms.v2.js b/assets/js/distillpub/transforms.v2.js index 2d12d32394db..41d3b7d3ea09 100644 --- a/assets/js/distillpub/transforms.v2.js +++ b/assets/js/distillpub/transforms.v2.js @@ -1,13185 +1,75 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('fs')) : - typeof define === 'function' && define.amd ? define(['exports', 'fs'], factory) : - (global = global || self, factory(global.dl = {}, global.fs)); -}(this, (function (exports, fs) { 'use strict'; - - fs = fs && Object.prototype.hasOwnProperty.call(fs, 'default') ? fs['default'] : fs; - - // Copyright 2018 The Distill Template Authors - // - // 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. - - const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; - const months = ['Jan.', 'Feb.', 'March', 'April', 'May', 'June', 'July', 'Aug.', 'Sept.', 'Oct.', 'Nov.', 'Dec.']; - const zeroPad = n => n < 10 ? '0' + n : n; - - const RFC = function(date) { - const day = days[date.getDay()].substring(0, 3); - const paddedDate = zeroPad(date.getDate()); - const month = months[date.getMonth()].substring(0,3); - const year = date.getFullYear().toString(); - const hours = date.getUTCHours().toString(); - const minutes = date.getUTCMinutes().toString(); - const seconds = date.getUTCSeconds().toString(); - return `${day}, ${paddedDate} ${month} ${year} ${hours}:${minutes}:${seconds} Z`; - }; - - const objectFromMap = function(map) { - const object = Array.from(map).reduce((object, [key, value]) => ( - Object.assign(object, { [key]: value }) // Be careful! Maps can have non-String keys; object literals can't. - ), {}); - return object; - }; - - const mapFromObject = function(object) { - const map = new Map(); - for (var property in object) { - if (object.hasOwnProperty(property)) { - map.set(property, object[property]); - } - } - return map; - }; - - class Author { - - // constructor(name='', personalURL='', affiliation='', affiliationURL='') { - // this.name = name; // 'Chris Olah' - // this.personalURL = personalURL; // 'https://colah.github.io' - // this.affiliation = affiliation; // 'Google Brain' - // this.affiliationURL = affiliationURL; // 'https://g.co/brain' - // } - - constructor(object) { - this.name = object.author; // 'Chris Olah' - this.personalURL = object.authorURL; // 'https://colah.github.io' - this.affiliation = object.affiliation; // 'Google Brain' - this.affiliationURL = object.affiliationURL; // 'https://g.co/brain' - this.affiliations = object.affiliations || []; // new-style affiliations - } - - // 'Chris' - get firstName() { - const names = this.name.split(' '); - return names.slice(0, names.length - 1).join(' '); - } - - // 'Olah' - get lastName() { - const names = this.name.split(' '); - return names[names.length -1]; - } - } - - function mergeFromYMLFrontmatter(target, source) { - target.title = source.title; - if (source.published) { - if (source.published instanceof Date) { - target.publishedDate = source.published; - } else if (source.published.constructor === String) { - target.publishedDate = new Date(source.published); - } - } - if (source.publishedDate) { - if (source.publishedDate instanceof Date) { - target.publishedDate = source.publishedDate; - } else if (source.publishedDate.constructor === String) { - target.publishedDate = new Date(source.publishedDate); - } else { - console.error('Don\'t know what to do with published date: ' + source.publishedDate); - } - } - target.description = source.description; - target.authors = source.authors.map( (authorObject) => new Author(authorObject)); - target.katex = source.katex; - target.password = source.password; - if (source.doi) { - target.doi = source.doi; - } - } - - class FrontMatter { - constructor() { - this.title = 'unnamed article'; // 'Attention and Augmented Recurrent Neural Networks' - this.description = ''; // 'A visual overview of neural attention...' - this.authors = []; // Array of Author(s) - - this.bibliography = new Map(); - this.bibliographyParsed = false; - // { - // 'gregor2015draw': { - // 'title': 'DRAW: A recurrent neural network for image generation', - // 'author': 'Gregor, Karol and Danihelka, Ivo and Graves, Alex and Rezende, Danilo Jimenez and Wierstra, Daan', - // 'journal': 'arXiv preprint arXiv:1502.04623', - // 'year': '2015', - // 'url': 'https://arxiv.org/pdf/1502.04623.pdf', - // 'type': 'article' - // }, - // } - - // Citation keys should be listed in the order that they are appear in the document. - // Each key refers to a key in the bibliography dictionary. - this.citations = []; // [ 'gregor2015draw', 'mercier2011humans' ] - this.citationsCollected = false; - - // - // Assigned from posts.csv - // - - // publishedDate: 2016-09-08T07:00:00.000Z, - // tags: [ 'rnn' ], - // distillPath: '2016/augmented-rnns', - // githubPath: 'distillpub/post--augmented-rnns', - // doiSuffix: 1, - - // - // Assigned from journal - // - this.journal = {}; - // journal: { - // 'title': 'Distill', - // 'full_title': 'Distill', - // 'abbrev_title': 'Distill', - // 'url': 'http://distill.pub', - // 'doi': '10.23915/distill', - // 'publisherName': 'Distill Working Group', - // 'publisherEmail': 'admin@distill.pub', - // 'issn': '2476-0757', - // 'editors': [...], - // 'committee': [...] - // } - // volume: 1, - // issue: 9, - - this.katex = {}; - - // - // Assigned from publishing process - // - - // githubCompareUpdatesUrl: 'https://github.com/distillpub/post--augmented-rnns/compare/1596e094d8943d2dc0ea445d92071129c6419c59...3bd9209e0c24d020f87cf6152dcecc6017cbc193', - // updatedDate: 2017-03-21T07:13:16.000Z, - // doi: '10.23915/distill.00001', - this.doi = undefined; - this.publishedDate = undefined; - } - - // Example: - // title: Demo Title Attention and Augmented Recurrent Neural Networks - // published: Jan 10, 2017 - // authors: - // - Chris Olah: - // - Shan Carter: http://shancarter.com - // affiliations: - // - Google Brain: - // - Google Brain: http://g.co/brain - - // - // Computed Properties - // - - // 'http://distill.pub/2016/augmented-rnns', - set url(value) { - this._url = value; - } - get url() { - if (this._url) { - return this._url; - } else if (this.distillPath && this.journal.url) { - return this.journal.url + '/' + this.distillPath; - } else if (this.journal.url) { - return this.journal.url; - } - } - - // 'https://github.com/distillpub/post--augmented-rnns', - get githubUrl() { - if (this.githubPath) { - return 'https://github.com/' + this.githubPath; - } else { - return undefined; - } - } - - // TODO resolve differences in naming of URL/Url/url. - // 'http://distill.pub/2016/augmented-rnns/thumbnail.jpg', - set previewURL(value) { - this._previewURL = value; - } - get previewURL() { - return this._previewURL ? this._previewURL : this.url + '/thumbnail.jpg'; - } - - // 'Thu, 08 Sep 2016 00:00:00 -0700', - get publishedDateRFC() { - return RFC(this.publishedDate); - } - - // 'Thu, 08 Sep 2016 00:00:00 -0700', - get updatedDateRFC() { - return RFC(this.updatedDate); - } - - // 2016, - get publishedYear() { - return this.publishedDate.getFullYear(); - } - - // 'Sept', - get publishedMonth() { - return months[this.publishedDate.getMonth()]; - } - - // 8, - get publishedDay() { - return this.publishedDate.getDate(); - } - - // '09', - get publishedMonthPadded() { - return zeroPad(this.publishedDate.getMonth() + 1); - } - - // '08', - get publishedDayPadded() { - return zeroPad(this.publishedDate.getDate()); - } - - get publishedISODateOnly() { - return this.publishedDate.toISOString().split('T')[0]; - } - - get volume() { - const volume = this.publishedYear - 2015; - if (volume < 1) { - throw new Error('Invalid publish date detected during computing volume'); - } - return volume; - } - - get issue() { - return this.publishedDate.getMonth() + 1; - } - - // 'Olah & Carter', - get concatenatedAuthors() { - if (this.authors.length > 2) { - return this.authors[0].lastName + ', et al.'; - } else if (this.authors.length === 2) { - return this.authors[0].lastName + ' & ' + this.authors[1].lastName; - } else if (this.authors.length === 1) { - return this.authors[0].lastName; - } - } - - // 'Olah, Chris and Carter, Shan', - get bibtexAuthors() { - return this.authors.map(author => { - return author.lastName + ', ' + author.firstName; - }).join(' and '); - } - - // 'olah2016attention' - get slug() { - let slug = ''; - if (this.authors.length) { - slug += this.authors[0].lastName.toLowerCase(); - slug += this.publishedYear; - slug += this.title.split(' ')[0].toLowerCase(); - } - return slug || 'Untitled'; - } - - get bibliographyEntries() { - return new Map(this.citations.map( citationKey => { - const entry = this.bibliography.get(citationKey); - return [citationKey, entry]; - })); - } - - set bibliography(bibliography) { - if (bibliography instanceof Map) { - this._bibliography = bibliography; - } else if (typeof bibliography === 'object') { - this._bibliography = mapFromObject(bibliography); - } - } - - get bibliography() { - return this._bibliography; - } - - static fromObject(source) { - const frontMatter = new FrontMatter(); - Object.assign(frontMatter, source); - return frontMatter; - } - - assignToObject(target) { - Object.assign(target, this); - target.bibliography = objectFromMap(this.bibliographyEntries); - target.url = this.url; - target.doi = this.doi; - target.githubUrl = this.githubUrl; - target.previewURL = this.previewURL; - if (this.publishedDate) { - target.volume = this.volume; - target.issue = this.issue; - target.publishedDateRFC = this.publishedDateRFC; - target.publishedYear = this.publishedYear; - target.publishedMonth = this.publishedMonth; - target.publishedDay = this.publishedDay; - target.publishedMonthPadded = this.publishedMonthPadded; - target.publishedDayPadded = this.publishedDayPadded; - } - if (this.updatedDate) { - target.updatedDateRFC = this.updatedDateRFC; - } - target.concatenatedAuthors = this.concatenatedAuthors; - target.bibtexAuthors = this.bibtexAuthors; - target.slug = this.slug; - } - - } - - // Copyright 2018 The Distill Template Authors - // - // Licensed under the Apache License, Version 2.0 (the "License"); - // you may not use this file except in compliance with the License. - // You may obtain a copy of the License at - // - // http://www.apache.org/licenses/LICENSE-2.0 - // - // Unless required by applicable law or agreed to in writing, software - // distributed under the License is distributed on an "AS IS" BASIS, - // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - // See the License for the specific language governing permissions and - // limitations under the License. - - function _moveLegacyAffiliationFormatIntoArray(frontMatter) { - // authors used to have propoerties "affiliation" and "affiliationURL". - // We now encourage using an array for affiliations containing objects with - // properties "name" and "url". - for (let author of frontMatter.authors) { - const hasOldStyle = Boolean(author.affiliation); - const hasNewStyle = Boolean(author.affiliations); - if (!hasOldStyle) continue; - if (hasNewStyle) { - console.warn(`Author ${author.author} has both old-style ("affiliation" & "affiliationURL") and new style ("affiliations") affiliation information!`); - } else { - let newAffiliation = { - "name": author.affiliation - }; - if (author.affiliationURL) newAffiliation.url = author.affiliationURL; - author.affiliations = [newAffiliation]; - } - } - return frontMatter - } - - function parseFrontmatter(element) { - const scriptTag = element.firstElementChild; - if (scriptTag) { - const type = scriptTag.getAttribute('type'); - if (type.split('/')[1] == 'json') { - const content = scriptTag.textContent; - const parsed = JSON.parse(content); - return _moveLegacyAffiliationFormatIntoArray(parsed); - } else { - console.error('Distill only supports JSON frontmatter tags anymore; no more YAML.'); - } - } else { - console.error('You added a frontmatter tag but did not provide a script tag with front matter data in it. Please take a look at our templates.'); - } - return {}; - } - - // Copyright 2018 The Distill Template Authors - - function ExtractFrontmatter(dom, data) { - const frontMatterTag = dom.querySelector('d-front-matter'); - if (!frontMatterTag) { - console.warn('No front matter tag found!'); - return; - } - const extractedData = parseFrontmatter(frontMatterTag); - mergeFromYMLFrontmatter(data, extractedData); - } - - function commonjsRequire () { - throw new Error('Dynamic requires are not currently supported by rollup-plugin-commonjs'); - } - - function unwrapExports (x) { - return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; - } - - function createCommonjsModule(fn, module) { - return module = { exports: {} }, fn(module, module.exports), module.exports; - } - - var bibtexParse = createCommonjsModule(function (module, exports) { - /* start bibtexParse 0.0.22 */ - - //Original work by Henrik Muehe (c) 2010 - // - //CommonJS port by Mikola Lysenko 2013 - // - //Port to Browser lib by ORCID / RCPETERS - // - //Issues: - //no comment handling within strings - //no string concatenation - //no variable values yet - //Grammar implemented here: - //bibtex -> (string | preamble | comment | entry)*; - //string -> '@STRING' '{' key_equals_value '}'; - //preamble -> '@PREAMBLE' '{' value '}'; - //comment -> '@COMMENT' '{' value '}'; - //entry -> '@' key '{' key ',' key_value_list '}'; - //key_value_list -> key_equals_value (',' key_equals_value)*; - //key_equals_value -> key '=' value; - //value -> value_quotes | value_braces | key; - //value_quotes -> '"' .*? '"'; // not quite - //value_braces -> '{' .*? '"'; // not quite - (function(exports) { - - function BibtexParser() { - - this.months = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"]; - this.notKey = [',','{','}',' ','=']; - this.pos = 0; - this.input = ""; - this.entries = new Array(); - - this.currentEntry = ""; - - this.setInput = function(t) { - this.input = t; - }; - - this.getEntries = function() { - return this.entries; - }; - - this.isWhitespace = function(s) { - return (s == ' ' || s == '\r' || s == '\t' || s == '\n'); - }; - - this.match = function(s, canCommentOut) { - if (canCommentOut == undefined || canCommentOut == null) - canCommentOut = true; - this.skipWhitespace(canCommentOut); - if (this.input.substring(this.pos, this.pos + s.length) == s) { - this.pos += s.length; - } else { - throw "Token mismatch, expected " + s + ", found " - + this.input.substring(this.pos); - } this.skipWhitespace(canCommentOut); - }; - - this.tryMatch = function(s, canCommentOut) { - if (canCommentOut == undefined || canCommentOut == null) - canCommentOut = true; - this.skipWhitespace(canCommentOut); - if (this.input.substring(this.pos, this.pos + s.length) == s) { - return true; - } else { - return false; - } }; - - /* when search for a match all text can be ignored, not just white space */ - this.matchAt = function() { - while (this.input.length > this.pos && this.input[this.pos] != '@') { - this.pos++; - } - if (this.input[this.pos] == '@') { - return true; - } return false; - }; - - this.skipWhitespace = function(canCommentOut) { - while (this.isWhitespace(this.input[this.pos])) { - this.pos++; - } if (this.input[this.pos] == "%" && canCommentOut == true) { - while (this.input[this.pos] != "\n") { - this.pos++; - } this.skipWhitespace(canCommentOut); - } }; - - this.value_braces = function() { - var bracecount = 0; - this.match("{", false); - var start = this.pos; - var escaped = false; - while (true) { - if (!escaped) { - if (this.input[this.pos] == '}') { - if (bracecount > 0) { - bracecount--; - } else { - var end = this.pos; - this.match("}", false); - return this.input.substring(start, end); - } } else if (this.input[this.pos] == '{') { - bracecount++; - } else if (this.pos >= this.input.length - 1) { - throw "Unterminated value"; - } } if (this.input[this.pos] == '\\' && escaped == false) - escaped = true; - else - escaped = false; - this.pos++; - } }; - - this.value_comment = function() { - var str = ''; - var brcktCnt = 0; - while (!(this.tryMatch("}", false) && brcktCnt == 0)) { - str = str + this.input[this.pos]; - if (this.input[this.pos] == '{') - brcktCnt++; - if (this.input[this.pos] == '}') - brcktCnt--; - if (this.pos >= this.input.length - 1) { - throw "Unterminated value:" + this.input.substring(start); - } this.pos++; - } return str; - }; - - this.value_quotes = function() { - this.match('"', false); - var start = this.pos; - var escaped = false; - while (true) { - if (!escaped) { - if (this.input[this.pos] == '"') { - var end = this.pos; - this.match('"', false); - return this.input.substring(start, end); - } else if (this.pos >= this.input.length - 1) { - throw "Unterminated value:" + this.input.substring(start); - } } - if (this.input[this.pos] == '\\' && escaped == false) - escaped = true; - else - escaped = false; - this.pos++; - } }; - - this.single_value = function() { - var start = this.pos; - if (this.tryMatch("{")) { - return this.value_braces(); - } else if (this.tryMatch('"')) { - return this.value_quotes(); - } else { - var k = this.key(); - if (k.match("^[0-9]+$")) - return k; - else if (this.months.indexOf(k.toLowerCase()) >= 0) - return k.toLowerCase(); - else - throw "Value expected:" + this.input.substring(start) + ' for key: ' + k; - - } }; - - this.value = function() { - var values = []; - values.push(this.single_value()); - while (this.tryMatch("#")) { - this.match("#"); - values.push(this.single_value()); - } return values.join(""); - }; - - this.key = function() { - var start = this.pos; - while (true) { - if (this.pos >= this.input.length) { - throw "Runaway key"; - } // а-яА-Я is Cyrillic - //console.log(this.input[this.pos]); - if (this.notKey.indexOf(this.input[this.pos]) >= 0) { - return this.input.substring(start, this.pos); - } else { - this.pos++; - - } } }; - - this.key_equals_value = function() { - var key = this.key(); - if (this.tryMatch("=")) { - this.match("="); - var val = this.value(); - return [ key, val ]; - } else { - throw "... = value expected, equals sign missing:" - + this.input.substring(this.pos); - } }; - - this.key_value_list = function() { - var kv = this.key_equals_value(); - this.currentEntry['entryTags'] = {}; - this.currentEntry['entryTags'][kv[0]] = kv[1]; - while (this.tryMatch(",")) { - this.match(","); - // fixes problems with commas at the end of a list - if (this.tryMatch("}")) { - break; - } - kv = this.key_equals_value(); - this.currentEntry['entryTags'][kv[0]] = kv[1]; - } }; - - this.entry_body = function(d) { - this.currentEntry = {}; - this.currentEntry['citationKey'] = this.key(); - this.currentEntry['entryType'] = d.substring(1); - this.match(","); - this.key_value_list(); - this.entries.push(this.currentEntry); - }; - - this.directive = function() { - this.match("@"); - return "@" + this.key(); - }; - - this.preamble = function() { - this.currentEntry = {}; - this.currentEntry['entryType'] = 'PREAMBLE'; - this.currentEntry['entry'] = this.value_comment(); - this.entries.push(this.currentEntry); - }; - - this.comment = function() { - this.currentEntry = {}; - this.currentEntry['entryType'] = 'COMMENT'; - this.currentEntry['entry'] = this.value_comment(); - this.entries.push(this.currentEntry); - }; - - this.entry = function(d) { - this.entry_body(d); - }; - - this.bibtex = function() { - while (this.matchAt()) { - var d = this.directive(); - this.match("{"); - if (d == "@STRING") { - this.string(); - } else if (d == "@PREAMBLE") { - this.preamble(); - } else if (d == "@COMMENT") { - this.comment(); - } else { - this.entry(d); - } - this.match("}"); - } }; - } - exports.toJSON = function(bibtex) { - var b = new BibtexParser(); - b.setInput(bibtex); - b.bibtex(); - return b.entries; - }; - - /* added during hackathon don't hate on me */ - exports.toBibtex = function(json) { - var out = ''; - for ( var i in json) { - out += "@" + json[i].entryType; - out += '{'; - if (json[i].citationKey) - out += json[i].citationKey + ', '; - if (json[i].entry) - out += json[i].entry ; - if (json[i].entryTags) { - var tags = ''; - for (var jdx in json[i].entryTags) { - if (tags.length != 0) - tags += ', '; - tags += jdx + '= {' + json[i].entryTags[jdx] + '}'; - } - out += tags; - } - out += '}\n\n'; - } - return out; - - }; - - })( exports); - - /* end bibtexParse */ - }); - - // Copyright 2018 The Distill Template Authors - - function normalizeTag(string) { - return string - .replace(/[\t\n ]+/g, ' ') - .replace(/{\\["^`.'acu~Hvs]( )?([a-zA-Z])}/g, (full, x, char) => char) - .replace(/{\\([a-zA-Z])}/g, (full, char) => char); - } - - function parseBibtex(bibtex) { - const bibliography = new Map(); - const parsedEntries = bibtexParse.toJSON(bibtex); - for (const entry of parsedEntries) { - // normalize tags; note entryTags is an object, not Map - for (const [key, value] of Object.entries(entry.entryTags)) { - entry.entryTags[key.toLowerCase()] = normalizeTag(value); - } - entry.entryTags.type = entry.entryType; - // add to bibliography - bibliography.set(entry.citationKey, entry.entryTags); - } - return bibliography; - } - - function serializeFrontmatterToBibtex(frontMatter) { - return `@article{${frontMatter.slug}, - author = {${frontMatter.bibtexAuthors}}, - title = {${frontMatter.title}}, - journal = {${frontMatter.journal.title}}, - year = {${frontMatter.publishedYear}}, - note = {${frontMatter.url}}, - doi = {${frontMatter.doi}} -}`; - } - - // Copyright 2018 The Distill Template Authors - - function parseBibliography(element) { - const scriptTag = element.firstElementChild; - if (scriptTag && scriptTag.tagName === 'SCRIPT') { - if (scriptTag.type == 'text/bibtex') { - const bibtex = element.firstElementChild.textContent; - return parseBibtex(bibtex); - } else if (scriptTag.type == 'text/json') { - return new Map(JSON.parse(scriptTag.textContent)); - } else { - console.warn('Unsupported bibliography script tag type: ' + scriptTag.type); - } - } else { - console.warn('Bibliography did not have any script tag.'); - } - } - - // Copyright 2018 The Distill Template Authors - - function ExtractBibliography(dom, data) { - const bibliographyTag = dom.querySelector('d-bibliography'); - if (!bibliographyTag) { - console.warn('No bibliography tag found!'); - return; - } - - const src = bibliographyTag.getAttribute('src'); - if (src) { - const path = data.inputDirectory + '/' + src; - const text = fs.readFileSync(path, 'utf-8'); - const bibliography = parseBibtex(text); - const scriptTag = dom.createElement('script'); - scriptTag.type = 'text/json'; - scriptTag.textContent = JSON.stringify([...bibliography]); - bibliographyTag.appendChild(scriptTag); - bibliographyTag.removeAttribute('src'); - } - - data.bibliography = parseBibliography(bibliographyTag); - } - - // Copyright 2018 The Distill Template Authors - // - // Licensed under the Apache License, Version 2.0 (the "License"); - // you may not use this file except in compliance with the License. - // You may obtain a copy of the License at - // - // http://www.apache.org/licenses/LICENSE-2.0 - // - // Unless required by applicable law or agreed to in writing, software - // distributed under the License is distributed on an "AS IS" BASIS, - // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - // See the License for the specific language governing permissions and - // limitations under the License. - - function collect_citations(dom = document) { - const citations = new Set(); - const citeTags = dom.querySelectorAll("d-cite"); - for (const tag of citeTags) { - const keyString = tag.getAttribute("key") || tag.getAttribute("bibtex-key"); - const keys = keyString.split(",").map(k => k.trim()); - for (const key of keys) { - citations.add(key); - } - } - return [...citations]; - } - - function author_string(ent, template, sep, finalSep) { - if (ent.author == null) { - return ""; - } - var names = ent.author.split(" and "); - let name_strings = names.map(name => { - name = name.trim(); - if (name.indexOf(",") != -1) { - var last = name.split(",")[0].trim(); - var firsts = name.split(",")[1]; - } else if (name.indexOf(" ") != -1) { - var last = name - .split(" ") - .slice(-1)[0] - .trim(); - var firsts = name - .split(" ") - .slice(0, -1) - .join(" "); - } else { - var last = name.trim(); - } - var initials = ""; - if (firsts != undefined) { - initials = firsts - .trim() - .split(" ") - .map(s => s.trim()[0]); - initials = initials.join(".") + "."; - } - return template - .replace("${F}", firsts) - .replace("${L}", last) - .replace("${I}", initials) - .trim(); // in case one of first or last was empty - }); - if (names.length > 1) { - var str = name_strings.slice(0, names.length - 1).join(sep); - str += (finalSep || sep) + name_strings[names.length - 1]; - return str; - } else { - return name_strings[0]; - } - } - - function venue_string(ent) { - var cite = ent.journal || ent.booktitle || ""; - if ("volume" in ent) { - var issue = ent.issue || ent.number; - issue = issue != undefined ? "(" + issue + ")" : ""; - cite += ", Vol " + ent.volume + issue; - } - if ("pages" in ent) { - cite += ", pp. " + ent.pages; - } - if (cite != "") cite += ". "; - if ("publisher" in ent) { - cite += ent.publisher; - if (cite[cite.length - 1] != ".") cite += "."; - } - return cite; - } - - function link_string(ent) { - if ("url" in ent) { - var url = ent.url; - var arxiv_match = /arxiv\.org\/abs\/([0-9\.]*)/.exec(url); - if (arxiv_match != null) { - url = `http://arxiv.org/pdf/${arxiv_match[1]}.pdf`; - } - - if (url.slice(-4) == ".pdf") { - var label = "PDF"; - } else if (url.slice(-5) == ".html") { - var label = "HTML"; - } - return `  [${label || "link"}]`; - } /* else if ("doi" in ent){ - return `  [DOI]`; - }*/ else { - return ""; - } - } - function doi_string(ent, new_line) { - if ("doi" in ent) { - return `${new_line ? "
      " : ""} DOI: ${ent.doi}`; - } else { - return ""; - } - } - - function title_string(ent) { - return '' + ent.title + " "; - } - - function bibliography_cite(ent, fancy) { - if (ent) { - var cite = title_string(ent); - cite += link_string(ent) + "
      "; - if (ent.author) { - cite += author_string(ent, "${L}, ${I}", ", ", " and "); - if (ent.year || ent.date) { - cite += ", "; - } - } - if (ent.year || ent.date) { - cite += (ent.year || ent.date) + ". "; - } else { - cite += ". "; - } - cite += venue_string(ent); - cite += doi_string(ent); - return cite; - /*var cite = author_string(ent, "${L}, ${I}", ", ", " and "); - if (ent.year || ent.date){ - cite += ", " + (ent.year || ent.date) + ". " - } else { - cite += ". " - } - cite += "" + ent.title + ". "; - cite += venue_string(ent); - cite += doi_string(ent); - cite += link_string(ent); - return cite*/ - } else { - return "?"; - } - } - - // Copyright 2018 The Distill Template Authors - - function ExtractCitations(dom, data) { - const citations = new Set(data.citations); - const newCitations = collect_citations(dom); - for (const citation of newCitations) { - citations.add(citation); - } - data.citations = Array.from(citations); - } - - // Copyright 2018 The Distill Template Authors - // - // Licensed under the Apache License, Version 2.0 (the "License"); - // you may not use this file except in compliance with the License. - // You may obtain a copy of the License at - // - // http://www.apache.org/licenses/LICENSE-2.0 - // - // Unless required by applicable law or agreed to in writing, software - // distributed under the License is distributed on an "AS IS" BASIS, - // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - // See the License for the specific language governing permissions and - // limitations under the License. - - function HTML(dom) { - - const head = dom.querySelector('head'); - - // set language to 'en' - if (!dom.querySelector('html').getAttribute('lang')) { - dom.querySelector('html').setAttribute('lang', 'en'); - } - - // set charset to 'utf-8' - if (!dom.querySelector('meta[charset]')) { - const meta = dom.createElement('meta'); - meta.setAttribute('charset', 'utf-8'); - head.appendChild(meta); - } - - // set viewport - if (!dom.querySelector('meta[name=viewport]')) { - const meta = dom.createElement('meta'); - meta.setAttribute('name', 'viewport'); - meta.setAttribute('content', 'width=device-width, initial-scale=1'); - head.appendChild(meta); - } - } - - // Copyright 2018 The Distill Template Authors - // - // 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. - - // import style from '../styles/d-byline.css'; - - function bylineTemplate(frontMatter) { - return ` - -`; - } - - // Copyright 2018 The Distill Template Authors - - function Byline(dom, data) { - const byline = dom.querySelector('d-byline'); - if (byline) { - byline.innerHTML = bylineTemplate(data); - } - } - - // Copyright 2018 The Distill Template Authors - // - // 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. - - // no appendix -> add appendix - // title in front, no h1 -> add it - // no title in front, h1 -> read and put into frontMatter - // footnote -> footnote list - // break up bib - // if citation, no bib-list -> add citation-list - - // if authors, no byline -> add byline - - function OptionalComponents(dom, data) { - const body = dom.body; - const article = body.querySelector('d-article'); - - // If we don't have an article tag, something weird is going on—giving up. - if (!article) { - console.warn('No d-article tag found; skipping adding optional components!'); - return; - } - - let byline = dom.querySelector('d-byline'); - if (!byline) { - if (data.authors) { - byline = dom.createElement('d-byline'); - body.insertBefore(byline, article); - } else { - console.warn('No authors found in front matter; please add them before submission!'); - } - } - - let title = dom.querySelector('d-title'); - if (!title) { - title = dom.createElement('d-title'); - body.insertBefore(title, byline); - } - - let h1 = title.querySelector('h1'); - if (!h1) { - h1 = dom.createElement('h1'); - h1.textContent = data.title; - title.insertBefore(h1, title.firstChild); - } - - const hasPassword = typeof data.password !== 'undefined'; - let interstitial = body.querySelector('d-interstitial'); - if (hasPassword && !interstitial) { - const inBrowser = typeof window !== 'undefined'; - const onLocalhost = inBrowser && window.location.hostname.includes('localhost'); - if (!inBrowser || !onLocalhost) { - interstitial = dom.createElement('d-interstitial'); - interstitial.password = data.password; - body.insertBefore(interstitial, body.firstChild); - } - } else if (!hasPassword && interstitial) { - interstitial.parentElement.removeChild(this); - } - - let appendix = dom.querySelector('d-appendix'); - if (!appendix) { - appendix = dom.createElement('d-appendix'); - dom.body.appendChild(appendix); - } - - let footnoteList = dom.querySelector('d-footnote-list'); - if (!footnoteList) { - footnoteList = dom.createElement('d-footnote-list'); - appendix.appendChild(footnoteList); - } - - let citationList = dom.querySelector('d-citation-list'); - if (!citationList) { - citationList = dom.createElement('d-citation-list'); - appendix.appendChild(citationList); - } - - } - - var katex$1 = createCommonjsModule(function (module, exports) { - (function(f){{module.exports=f();}})(function(){return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof commonjsRequire=="function"&&commonjsRequire;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r);}return n[o].exports}var i=typeof commonjsRequire=="function"&&commonjsRequire;for(var o=0;o= 0; --i) { - tok = expansion[i]; - if (tok.text === "#") { - if (i === 0) { - throw new _ParseError2.default("Incomplete placeholder at end of macro body", tok); - } - tok = expansion[--i]; // next token on stack - if (tok.text === "#") { - // ## → # - expansion.splice(i + 1, 1); // drop first # - } else if (/^[1-9]$/.test(tok.text)) { - // expansion.splice(i, 2, arg[0], arg[1], …) - // to replace placeholder with the indicated argument. - // TODO: use spread once we move to ES2015 - expansion.splice.apply(expansion, [i, 2].concat(args[tok.text - 1])); - } else { - throw new _ParseError2.default("Not a valid argument number", tok); - } - } - } - } - this.stack = this.stack.concat(expansion); - } - } - }, { - key: "get", - value: function get(ignoreSpace) { - this.discardedWhiteSpace = []; - var token = this.nextToken(); - if (ignoreSpace) { - while (token.text === " ") { - this.discardedWhiteSpace.push(token); - token = this.nextToken(); - } - } - return token; - } - - /** - * Undo the effect of the preceding call to the get method. - * A call to this method MUST be immediately preceded and immediately followed - * by a call to get. Only used during mode switching, i.e. after one token - * was got in the old mode but should get got again in a new mode - * with possibly different whitespace handling. - */ - - }, { - key: "unget", - value: function unget(token) { - this.stack.push(token); - while (this.discardedWhiteSpace.length !== 0) { - this.stack.push(this.discardedWhiteSpace.pop()); - } - } - }]); - return MacroExpander; - }(); - - module.exports = MacroExpander; - - },{"./Lexer":26,"./ParseError":29,"./macros":44,"babel-runtime/helpers/classCallCheck":4,"babel-runtime/helpers/createClass":5,"object-assign":25}],28:[function(require,module,exports){ - - var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = require("babel-runtime/helpers/createClass"); - - var _createClass3 = _interopRequireDefault(_createClass2); - - var _fontMetrics2 = require("./fontMetrics"); - - var _fontMetrics3 = _interopRequireDefault(_fontMetrics2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var BASESIZE = 6; /** - * This file contains information about the options that the Parser carries - * around with it while parsing. Data is held in an `Options` object, and when - * recursing, a new `Options` object can be created with the `.with*` and - * `.reset` functions. - */ - - var sizeStyleMap = [ - // Each element contains [textsize, scriptsize, scriptscriptsize]. - // The size mappings are taken from TeX with \normalsize=10pt. - [1, 1, 1], // size1: [5, 5, 5] \tiny - [2, 1, 1], // size2: [6, 5, 5] - [3, 1, 1], // size3: [7, 5, 5] \scriptsize - [4, 2, 1], // size4: [8, 6, 5] \footnotesize - [5, 2, 1], // size5: [9, 6, 5] \small - [6, 3, 1], // size6: [10, 7, 5] \normalsize - [7, 4, 2], // size7: [12, 8, 6] \large - [8, 6, 3], // size8: [14.4, 10, 7] \Large - [9, 7, 6], // size9: [17.28, 12, 10] \LARGE - [10, 8, 7], // size10: [20.74, 14.4, 12] \huge - [11, 10, 9]]; - - var sizeMultipliers = [ - // fontMetrics.js:getFontMetrics also uses size indexes, so if - // you change size indexes, change that function. - 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.2, 1.44, 1.728, 2.074, 2.488]; - - var sizeAtStyle = function sizeAtStyle(size, style) { - return style.size < 2 ? size : sizeStyleMap[size - 1][style.size - 1]; - }; - - /** - * This is the main options class. It contains the current style, size, color, - * and font. - * - * Options objects should not be modified. To create a new Options with - * different properties, call a `.having*` method. - */ - - var Options = function () { - function Options(data) { - (0, _classCallCheck3.default)(this, Options); - - this.style = data.style; - this.color = data.color; - this.size = data.size || BASESIZE; - this.textSize = data.textSize || this.size; - this.phantom = data.phantom; - this.font = data.font; - this.sizeMultiplier = sizeMultipliers[this.size - 1]; - this._fontMetrics = null; - } - - /** - * Returns a new options object with the same properties as "this". Properties - * from "extension" will be copied to the new options object. - */ - - - (0, _createClass3.default)(Options, [{ - key: "extend", - value: function extend(extension) { - var data = { - style: this.style, - size: this.size, - textSize: this.textSize, - color: this.color, - phantom: this.phantom, - font: this.font - }; - - for (var key in extension) { - if (extension.hasOwnProperty(key)) { - data[key] = extension[key]; - } - } - - return new Options(data); - } - - /** - * Return an options object with the given style. If `this.style === style`, - * returns `this`. - */ - - }, { - key: "havingStyle", - value: function havingStyle(style) { - if (this.style === style) { - return this; - } else { - return this.extend({ - style: style, - size: sizeAtStyle(this.textSize, style) - }); - } - } - - /** - * Return an options object with a cramped version of the current style. If - * the current style is cramped, returns `this`. - */ - - }, { - key: "havingCrampedStyle", - value: function havingCrampedStyle() { - return this.havingStyle(this.style.cramp()); - } - - /** - * Return an options object with the given size and in at least `\textstyle`. - * Returns `this` if appropriate. - */ - - }, { - key: "havingSize", - value: function havingSize(size) { - if (this.size === size && this.textSize === size) { - return this; - } else { - return this.extend({ - style: this.style.text(), - size: size, - textSize: size - }); - } - } - - /** - * Like `this.havingSize(BASESIZE).havingStyle(style)`. If `style` is omitted, - * changes to at least `\textstyle`. - */ - - }, { - key: "havingBaseStyle", - value: function havingBaseStyle(style) { - style = style || this.style.text(); - var wantSize = sizeAtStyle(BASESIZE, style); - if (this.size === wantSize && this.textSize === BASESIZE && this.style === style) { - return this; - } else { - return this.extend({ - style: style, - size: wantSize, - baseSize: BASESIZE - }); - } - } - - /** - * Create a new options object with the given color. - */ - - }, { - key: "withColor", - value: function withColor(color) { - return this.extend({ - color: color - }); - } - - /** - * Create a new options object with "phantom" set to true. - */ - - }, { - key: "withPhantom", - value: function withPhantom() { - return this.extend({ - phantom: true - }); - } - - /** - * Create a new options objects with the give font. - */ - - }, { - key: "withFont", - value: function withFont(font) { - return this.extend({ - font: font || this.font - }); - } - - /** - * Return the CSS sizing classes required to switch from enclosing options - * `oldOptions` to `this`. Returns an array of classes. - */ - - }, { - key: "sizingClasses", - value: function sizingClasses(oldOptions) { - if (oldOptions.size !== this.size) { - return ["sizing", "reset-size" + oldOptions.size, "size" + this.size]; - } else { - return []; - } - } - - /** - * Return the CSS sizing classes required to switch to the base size. Like - * `this.havingSize(BASESIZE).sizingClasses(this)`. - */ - - }, { - key: "baseSizingClasses", - value: function baseSizingClasses() { - if (this.size !== BASESIZE) { - return ["sizing", "reset-size" + this.size, "size" + BASESIZE]; - } else { - return []; - } - } - - /** - * Return the font metrics for this size. - */ - - }, { - key: "fontMetrics", - value: function fontMetrics() { - if (!this._fontMetrics) { - this._fontMetrics = _fontMetrics3.default.getFontMetrics(this.size); - } - return this._fontMetrics; - } - - /** - * A map of color names to CSS colors. - * TODO(emily): Remove this when we have real macros - */ - - }, { - key: "getColor", - - - /** - * Gets the CSS color of the current options object, accounting for the - * `colorMap`. - */ - value: function getColor() { - if (this.phantom) { - return "transparent"; - } else { - return Options.colorMap[this.color] || this.color; - } - } - }]); - return Options; - }(); - - /** - * The base size index. - */ - - - Options.colorMap = { - "katex-blue": "#6495ed", - "katex-orange": "#ffa500", - "katex-pink": "#ff00af", - "katex-red": "#df0030", - "katex-green": "#28ae7b", - "katex-gray": "gray", - "katex-purple": "#9d38bd", - "katex-blueA": "#ccfaff", - "katex-blueB": "#80f6ff", - "katex-blueC": "#63d9ea", - "katex-blueD": "#11accd", - "katex-blueE": "#0c7f99", - "katex-tealA": "#94fff5", - "katex-tealB": "#26edd5", - "katex-tealC": "#01d1c1", - "katex-tealD": "#01a995", - "katex-tealE": "#208170", - "katex-greenA": "#b6ffb0", - "katex-greenB": "#8af281", - "katex-greenC": "#74cf70", - "katex-greenD": "#1fab54", - "katex-greenE": "#0d923f", - "katex-goldA": "#ffd0a9", - "katex-goldB": "#ffbb71", - "katex-goldC": "#ff9c39", - "katex-goldD": "#e07d10", - "katex-goldE": "#a75a05", - "katex-redA": "#fca9a9", - "katex-redB": "#ff8482", - "katex-redC": "#f9685d", - "katex-redD": "#e84d39", - "katex-redE": "#bc2612", - "katex-maroonA": "#ffbde0", - "katex-maroonB": "#ff92c6", - "katex-maroonC": "#ed5fa6", - "katex-maroonD": "#ca337c", - "katex-maroonE": "#9e034e", - "katex-purpleA": "#ddd7ff", - "katex-purpleB": "#c6b9fc", - "katex-purpleC": "#aa87ff", - "katex-purpleD": "#7854ab", - "katex-purpleE": "#543b78", - "katex-mintA": "#f5f9e8", - "katex-mintB": "#edf2df", - "katex-mintC": "#e0e5cc", - "katex-grayA": "#f6f7f7", - "katex-grayB": "#f0f1f2", - "katex-grayC": "#e3e5e6", - "katex-grayD": "#d6d8da", - "katex-grayE": "#babec2", - "katex-grayF": "#888d93", - "katex-grayG": "#626569", - "katex-grayH": "#3b3e40", - "katex-grayI": "#21242c", - "katex-kaBlue": "#314453", - "katex-kaGreen": "#71B307" - }; - Options.BASESIZE = BASESIZE; - - module.exports = Options; - - },{"./fontMetrics":41,"babel-runtime/helpers/classCallCheck":4,"babel-runtime/helpers/createClass":5}],29:[function(require,module,exports){ - - var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /** - * This is the ParseError class, which is the main error thrown by KaTeX - * functions when something has gone wrong. This is used to distinguish internal - * errors from errors in the expression that the user provided. - * - * If possible, a caller should provide a Token or ParseNode with information - * about where in the source string the problem occurred. - * - * @param {string} message The error message - * @param {(Token|ParseNode)=} token An object providing position information - */ - var ParseError = function ParseError(message, token) { - (0, _classCallCheck3.default)(this, ParseError); - - var error = "KaTeX parse error: " + message; - var start = void 0; - var end = void 0; - - if (token && token.lexer && token.start <= token.end) { - // If we have the input and a position, make the error a bit fancier - - // Get the input - var input = token.lexer.input; - - // Prepend some information - start = token.start; - end = token.end; - if (start === input.length) { - error += " at end of input: "; - } else { - error += " at position " + (start + 1) + ": "; - } - - // Underline token in question using combining underscores - var underlined = input.slice(start, end).replace(/[^]/g, "$&\u0332"); - - // Extract some context from the input and add it to the error - var left = void 0; - if (start > 15) { - left = "…" + input.slice(start - 15, start); - } else { - left = input.slice(0, start); - } - var right = void 0; - if (end + 15 < input.length) { - right = input.slice(end, end + 15) + "…"; - } else { - right = input.slice(end); - } - error += left + underlined + right; - } - - // Some hackery to make ParseError a prototype of Error - // See http://stackoverflow.com/a/8460753 - var self = new Error(error); - self.name = "ParseError"; - self.__proto__ = ParseError.prototype; - - self.position = start; - return self; - }; - - // More hackery - - - ParseError.prototype.__proto__ = Error.prototype; - - module.exports = ParseError; - - },{"babel-runtime/helpers/classCallCheck":4}],30:[function(require,module,exports){ - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /** - * The resulting parse tree nodes of the parse tree. - * - * It is possible to provide position information, so that a ParseNode can - * fulfil a role similar to a Token in error reporting. - * For details on the corresponding properties see Token constructor. - * Providing such information can lead to better error reporting. - * - * @param {string} type type of node, like e.g. "ordgroup" - * @param {?object} value type-specific representation of the node - * @param {string} mode parse mode in action for this node, - * "math" or "text" - * @param {Token=} firstToken first token of the input for this node, - * will omit position information if unset - * @param {Token=} lastToken last token of the input for this node, - * will default to firstToken if unset - */ - var ParseNode = function ParseNode(type, value, mode, firstToken, lastToken) { - (0, _classCallCheck3.default)(this, ParseNode); - - this.type = type; - this.value = value; - this.mode = mode; - if (firstToken && (!lastToken || lastToken.lexer === firstToken.lexer)) { - this.lexer = firstToken.lexer; - this.start = firstToken.start; - this.end = (lastToken || firstToken).end; - } - }; - - exports.default = ParseNode; - - },{"babel-runtime/helpers/classCallCheck":4}],31:[function(require,module,exports){ - - var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = require("babel-runtime/helpers/createClass"); - - var _createClass3 = _interopRequireDefault(_createClass2); - - var _functions = require("./functions"); - - var _functions2 = _interopRequireDefault(_functions); - - var _environments = require("./environments"); - - var _environments2 = _interopRequireDefault(_environments); - - var _MacroExpander = require("./MacroExpander"); - - var _MacroExpander2 = _interopRequireDefault(_MacroExpander); - - var _symbols = require("./symbols"); - - var _symbols2 = _interopRequireDefault(_symbols); - - var _utils = require("./utils"); - - var _utils2 = _interopRequireDefault(_utils); - - var _units = require("./units"); - - var _units2 = _interopRequireDefault(_units); - - var _unicodeRegexes = require("./unicodeRegexes"); - - var _ParseNode = require("./ParseNode"); - - var _ParseNode2 = _interopRequireDefault(_ParseNode); - - var _ParseError = require("./ParseError"); - - var _ParseError2 = _interopRequireDefault(_ParseError); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /** - * This file contains the parser used to parse out a TeX expression from the - * input. Since TeX isn't context-free, standard parsers don't work particularly - * well. - * - * The strategy of this parser is as such: - * - * The main functions (the `.parse...` ones) take a position in the current - * parse string to parse tokens from. The lexer (found in Lexer.js, stored at - * this.lexer) also supports pulling out tokens at arbitrary places. When - * individual tokens are needed at a position, the lexer is called to pull out a - * token, which is then used. - * - * The parser has a property called "mode" indicating the mode that - * the parser is currently in. Currently it has to be one of "math" or - * "text", which denotes whether the current environment is a math-y - * one or a text-y one (e.g. inside \text). Currently, this serves to - * limit the functions which can be used in text mode. - * - * The main functions then return an object which contains the useful data that - * was parsed at its given point, and a new position at the end of the parsed - * data. The main functions can call each other and continue the parsing by - * using the returned position as a new starting point. - * - * There are also extra `.handle...` functions, which pull out some reused - * functionality into self-contained functions. - * - * The earlier functions return ParseNodes. - * The later functions (which are called deeper in the parse) sometimes return - * ParseFuncOrArgument, which contain a ParseNode as well as some data about - * whether the parsed object is a function which is missing some arguments, or a - * standalone object which can be used as an argument to another function. - */ - - /** - * An initial function (without its arguments), or an argument to a function. - * The `result` argument should be a ParseNode. - */ - function ParseFuncOrArgument(result, isFunction, token) { - this.result = result; - // Is this a function (i.e. is it something defined in functions.js)? - this.isFunction = isFunction; - this.token = token; - } /* eslint no-constant-condition:0 */ - - var Parser = function () { - function Parser(input, settings) { - (0, _classCallCheck3.default)(this, Parser); - - // Create a new macro expander (gullet) and (indirectly via that) also a - // new lexer (mouth) for this parser (stomach, in the language of TeX) - this.gullet = new _MacroExpander2.default(input, settings.macros); - // Use old \color behavior (same as LaTeX's \textcolor) if requested. - // We do this after the macros object has been copied by MacroExpander. - if (settings.colorIsTextColor) { - this.gullet.macros["\\color"] = "\\textcolor"; - } - // Store the settings for use in parsing - this.settings = settings; - // Count leftright depth (for \middle errors) - this.leftrightDepth = 0; - } - - /** - * Checks a result to make sure it has the right type, and throws an - * appropriate error otherwise. - * - * @param {boolean=} consume whether to consume the expected token, - * defaults to true - */ - - - (0, _createClass3.default)(Parser, [{ - key: "expect", - value: function expect(text, consume) { - if (this.nextToken.text !== text) { - throw new _ParseError2.default("Expected '" + text + "', got '" + this.nextToken.text + "'", this.nextToken); - } - if (consume !== false) { - this.consume(); - } - } - - /** - * Considers the current look ahead token as consumed, - * and fetches the one after that as the new look ahead. - */ - - }, { - key: "consume", - value: function consume() { - this.nextToken = this.gullet.get(this.mode === "math"); - } - }, { - key: "switchMode", - value: function switchMode(newMode) { - this.gullet.unget(this.nextToken); - this.mode = newMode; - this.consume(); - } - - /** - * Main parsing function, which parses an entire input. - * - * @return {?Array.} - */ - - }, { - key: "parse", - value: function parse() { - // Try to parse the input - this.mode = "math"; - this.consume(); - var parse = this.parseInput(); - return parse; - } - - /** - * Parses an entire input tree. - */ - - }, { - key: "parseInput", - value: function parseInput() { - // Parse an expression - var expression = this.parseExpression(false); - // If we succeeded, make sure there's an EOF at the end - this.expect("EOF", false); - return expression; - } - }, { - key: "parseExpression", - - - /** - * Parses an "expression", which is a list of atoms. - * - * @param {boolean} breakOnInfix Should the parsing stop when we hit infix - * nodes? This happens when functions have higher precendence - * than infix nodes in implicit parses. - * - * @param {?string} breakOnTokenText The text of the token that the expression - * should end with, or `null` if something else should end the - * expression. - * - * @return {ParseNode} - */ - value: function parseExpression(breakOnInfix, breakOnTokenText) { - var body = []; - // Keep adding atoms to the body until we can't parse any more atoms (either - // we reached the end, a }, or a \right) - while (true) { - var lex = this.nextToken; - if (Parser.endOfExpression.indexOf(lex.text) !== -1) { - break; - } - if (breakOnTokenText && lex.text === breakOnTokenText) { - break; - } - if (breakOnInfix && _functions2.default[lex.text] && _functions2.default[lex.text].infix) { - break; - } - var atom = this.parseAtom(); - if (!atom) { - if (!this.settings.throwOnError && lex.text[0] === "\\") { - var errorNode = this.handleUnsupportedCmd(); - body.push(errorNode); - continue; - } - - break; - } - body.push(atom); - } - return this.handleInfixNodes(body); - } - - /** - * Rewrites infix operators such as \over with corresponding commands such - * as \frac. - * - * There can only be one infix operator per group. If there's more than one - * then the expression is ambiguous. This can be resolved by adding {}. - * - * @returns {Array} - */ - - }, { - key: "handleInfixNodes", - value: function handleInfixNodes(body) { - var overIndex = -1; - var funcName = void 0; - - for (var i = 0; i < body.length; i++) { - var node = body[i]; - if (node.type === "infix") { - if (overIndex !== -1) { - throw new _ParseError2.default("only one infix operator per group", node.value.token); - } - overIndex = i; - funcName = node.value.replaceWith; - } - } - - if (overIndex !== -1) { - var numerNode = void 0; - var denomNode = void 0; - - var numerBody = body.slice(0, overIndex); - var denomBody = body.slice(overIndex + 1); - - if (numerBody.length === 1 && numerBody[0].type === "ordgroup") { - numerNode = numerBody[0]; - } else { - numerNode = new _ParseNode2.default("ordgroup", numerBody, this.mode); - } - - if (denomBody.length === 1 && denomBody[0].type === "ordgroup") { - denomNode = denomBody[0]; - } else { - denomNode = new _ParseNode2.default("ordgroup", denomBody, this.mode); - } - - var value = this.callFunction(funcName, [numerNode, denomNode], null); - return [new _ParseNode2.default(value.type, value, this.mode)]; - } else { - return body; - } - } - - // The greediness of a superscript or subscript - - }, { - key: "handleSupSubscript", - - - /** - * Handle a subscript or superscript with nice errors. - */ - value: function handleSupSubscript(name) { - var symbolToken = this.nextToken; - var symbol = symbolToken.text; - this.consume(); - var group = this.parseGroup(); - - if (!group) { - if (!this.settings.throwOnError && this.nextToken.text[0] === "\\") { - return this.handleUnsupportedCmd(); - } else { - throw new _ParseError2.default("Expected group after '" + symbol + "'", symbolToken); - } - } else if (group.isFunction) { - // ^ and _ have a greediness, so handle interactions with functions' - // greediness - var funcGreediness = _functions2.default[group.result].greediness; - if (funcGreediness > Parser.SUPSUB_GREEDINESS) { - return this.parseFunction(group); - } else { - throw new _ParseError2.default("Got function '" + group.result + "' with no arguments " + "as " + name, symbolToken); - } - } else { - return group.result; - } - } - - /** - * Converts the textual input of an unsupported command into a text node - * contained within a color node whose color is determined by errorColor - */ - - }, { - key: "handleUnsupportedCmd", - value: function handleUnsupportedCmd() { - var text = this.nextToken.text; - var textordArray = []; - - for (var i = 0; i < text.length; i++) { - textordArray.push(new _ParseNode2.default("textord", text[i], "text")); - } - - var textNode = new _ParseNode2.default("text", { - body: textordArray, - type: "text" - }, this.mode); - - var colorNode = new _ParseNode2.default("color", { - color: this.settings.errorColor, - value: [textNode], - type: "color" - }, this.mode); - - this.consume(); - return colorNode; - } - - /** - * Parses a group with optional super/subscripts. - * - * @return {?ParseNode} - */ - - }, { - key: "parseAtom", - value: function parseAtom() { - // The body of an atom is an implicit group, so that things like - // \left(x\right)^2 work correctly. - var base = this.parseImplicitGroup(); - - // In text mode, we don't have superscripts or subscripts - if (this.mode === "text") { - return base; - } - - // Note that base may be empty (i.e. null) at this point. - - var superscript = void 0; - var subscript = void 0; - while (true) { - // Lex the first token - var lex = this.nextToken; - - if (lex.text === "\\limits" || lex.text === "\\nolimits") { - // We got a limit control - if (!base || base.type !== "op") { - throw new _ParseError2.default("Limit controls must follow a math operator", lex); - } else { - var limits = lex.text === "\\limits"; - base.value.limits = limits; - base.value.alwaysHandleSupSub = true; - } - this.consume(); - } else if (lex.text === "^") { - // We got a superscript start - if (superscript) { - throw new _ParseError2.default("Double superscript", lex); - } - superscript = this.handleSupSubscript("superscript"); - } else if (lex.text === "_") { - // We got a subscript start - if (subscript) { - throw new _ParseError2.default("Double subscript", lex); - } - subscript = this.handleSupSubscript("subscript"); - } else if (lex.text === "'") { - // We got a prime - if (superscript) { - throw new _ParseError2.default("Double superscript", lex); - } - var prime = new _ParseNode2.default("textord", "\\prime", this.mode); - - // Many primes can be grouped together, so we handle this here - var primes = [prime]; - this.consume(); - // Keep lexing tokens until we get something that's not a prime - while (this.nextToken.text === "'") { - // For each one, add another prime to the list - primes.push(prime); - this.consume(); - } - // If there's a superscript following the primes, combine that - // superscript in with the primes. - if (this.nextToken.text === "^") { - primes.push(this.handleSupSubscript("superscript")); - } - // Put everything into an ordgroup as the superscript - superscript = new _ParseNode2.default("ordgroup", primes, this.mode); - } else { - // If it wasn't ^, _, or ', stop parsing super/subscripts - break; - } - } - - if (superscript || subscript) { - // If we got either a superscript or subscript, create a supsub - return new _ParseNode2.default("supsub", { - base: base, - sup: superscript, - sub: subscript - }, this.mode); - } else { - // Otherwise return the original body - return base; - } - } - - // A list of the size-changing functions, for use in parseImplicitGroup - - - // A list of the style-changing functions, for use in parseImplicitGroup - - - // Old font functions - - }, { - key: "parseImplicitGroup", - - - /** - * Parses an implicit group, which is a group that starts at the end of a - * specified, and ends right before a higher explicit group ends, or at EOL. It - * is used for functions that appear to affect the current style, like \Large or - * \textrm, where instead of keeping a style we just pretend that there is an - * implicit grouping after it until the end of the group. E.g. - * small text {\Large large text} small text again - * It is also used for \left and \right to get the correct grouping. - * - * @return {?ParseNode} - */ - value: function parseImplicitGroup() { - var start = this.parseSymbol(); - - if (start == null) { - // If we didn't get anything we handle, fall back to parseFunction - return this.parseFunction(); - } - - var func = start.result; - - if (func === "\\left") { - // If we see a left: - // Parse the entire left function (including the delimiter) - var left = this.parseFunction(start); - // Parse out the implicit body - ++this.leftrightDepth; - var body = this.parseExpression(false); - --this.leftrightDepth; - // Check the next token - this.expect("\\right", false); - var right = this.parseFunction(); - return new _ParseNode2.default("leftright", { - body: body, - left: left.value.value, - right: right.value.value - }, this.mode); - } else if (func === "\\begin") { - // begin...end is similar to left...right - var begin = this.parseFunction(start); - var envName = begin.value.name; - if (!_environments2.default.hasOwnProperty(envName)) { - throw new _ParseError2.default("No such environment: " + envName, begin.value.nameGroup); - } - // Build the environment object. Arguments and other information will - // be made available to the begin and end methods using properties. - var env = _environments2.default[envName]; - var args = this.parseArguments("\\begin{" + envName + "}", env); - var context = { - mode: this.mode, - envName: envName, - parser: this, - positions: args.pop() - }; - var result = env.handler(context, args); - this.expect("\\end", false); - var endNameToken = this.nextToken; - var end = this.parseFunction(); - if (end.value.name !== envName) { - throw new _ParseError2.default("Mismatch: \\begin{" + envName + "} matched " + "by \\end{" + end.value.name + "}", endNameToken); - } - result.position = end.position; - return result; - } else if (_utils2.default.contains(Parser.sizeFuncs, func)) { - // If we see a sizing function, parse out the implicit body - this.consumeSpaces(); - var _body = this.parseExpression(false); - return new _ParseNode2.default("sizing", { - // Figure out what size to use based on the list of functions above - size: _utils2.default.indexOf(Parser.sizeFuncs, func) + 1, - value: _body - }, this.mode); - } else if (_utils2.default.contains(Parser.styleFuncs, func)) { - // If we see a styling function, parse out the implicit body - this.consumeSpaces(); - var _body2 = this.parseExpression(true); - return new _ParseNode2.default("styling", { - // Figure out what style to use by pulling out the style from - // the function name - style: func.slice(1, func.length - 5), - value: _body2 - }, this.mode); - } else if (func in Parser.oldFontFuncs) { - var style = Parser.oldFontFuncs[func]; - // If we see an old font function, parse out the implicit body - this.consumeSpaces(); - var _body3 = this.parseExpression(true); - if (style.slice(0, 4) === 'text') { - return new _ParseNode2.default("text", { - style: style, - body: new _ParseNode2.default("ordgroup", _body3, this.mode) - }, this.mode); - } else { - return new _ParseNode2.default("font", { - font: style, - body: new _ParseNode2.default("ordgroup", _body3, this.mode) - }, this.mode); - } - } else if (func === "\\color") { - // If we see a styling function, parse out the implicit body - var color = this.parseColorGroup(false); - if (!color) { - throw new _ParseError2.default("\\color not followed by color"); - } - var _body4 = this.parseExpression(true); - return new _ParseNode2.default("color", { - type: "color", - color: color.result.value, - value: _body4 - }, this.mode); - } else if (func === "$") { - if (this.mode === "math") { - throw new _ParseError2.default("$ within math mode"); - } - this.consume(); - var outerMode = this.mode; - this.switchMode("math"); - var _body5 = this.parseExpression(false, "$"); - this.expect("$", true); - this.switchMode(outerMode); - return new _ParseNode2.default("styling", { - style: "text", - value: _body5 - }, "math"); - } else { - // Defer to parseFunction if it's not a function we handle - return this.parseFunction(start); - } - } - - /** - * Parses an entire function, including its base and all of its arguments. - * The base might either have been parsed already, in which case - * it is provided as an argument, or it's the next group in the input. - * - * @param {ParseFuncOrArgument=} baseGroup optional as described above - * @return {?ParseNode} - */ - - }, { - key: "parseFunction", - value: function parseFunction(baseGroup) { - if (!baseGroup) { - baseGroup = this.parseGroup(); - } - - if (baseGroup) { - if (baseGroup.isFunction) { - var func = baseGroup.result; - var funcData = _functions2.default[func]; - if (this.mode === "text" && !funcData.allowedInText) { - throw new _ParseError2.default("Can't use function '" + func + "' in text mode", baseGroup.token); - } else if (this.mode === "math" && funcData.allowedInMath === false) { - throw new _ParseError2.default("Can't use function '" + func + "' in math mode", baseGroup.token); - } - - var args = this.parseArguments(func, funcData); - var token = baseGroup.token; - var result = this.callFunction(func, args, args.pop(), token); - return new _ParseNode2.default(result.type, result, this.mode); - } else { - return baseGroup.result; - } - } else { - return null; - } - } - - /** - * Call a function handler with a suitable context and arguments. - */ - - }, { - key: "callFunction", - value: function callFunction(name, args, positions, token) { - var context = { - funcName: name, - parser: this, - positions: positions, - token: token - }; - return _functions2.default[name].handler(context, args); - } - - /** - * Parses the arguments of a function or environment - * - * @param {string} func "\name" or "\begin{name}" - * @param {{numArgs:number,numOptionalArgs:number|undefined}} funcData - * @return the array of arguments, with the list of positions as last element - */ - - }, { - key: "parseArguments", - value: function parseArguments(func, funcData) { - var totalArgs = funcData.numArgs + funcData.numOptionalArgs; - if (totalArgs === 0) { - return [[this.pos]]; - } - - var baseGreediness = funcData.greediness; - var positions = [this.pos]; - var args = []; - - for (var i = 0; i < totalArgs; i++) { - var nextToken = this.nextToken; - var argType = funcData.argTypes && funcData.argTypes[i]; - var arg = void 0; - if (i < funcData.numOptionalArgs) { - if (argType) { - arg = this.parseGroupOfType(argType, true); - } else { - arg = this.parseGroup(true); - } - if (!arg) { - args.push(null); - positions.push(this.pos); - continue; - } - } else { - if (argType) { - arg = this.parseGroupOfType(argType); - } else { - arg = this.parseGroup(); - } - if (!arg) { - if (!this.settings.throwOnError && this.nextToken.text[0] === "\\") { - arg = new ParseFuncOrArgument(this.handleUnsupportedCmd(this.nextToken.text), false); - } else { - throw new _ParseError2.default("Expected group after '" + func + "'", nextToken); - } - } - } - var argNode = void 0; - if (arg.isFunction) { - var argGreediness = _functions2.default[arg.result].greediness; - if (argGreediness > baseGreediness) { - argNode = this.parseFunction(arg); - } else { - throw new _ParseError2.default("Got function '" + arg.result + "' as " + "argument to '" + func + "'", nextToken); - } - } else { - argNode = arg.result; - } - args.push(argNode); - positions.push(this.pos); - } - - args.push(positions); - - return args; - } - - /** - * Parses a group when the mode is changing. - * - * @return {?ParseFuncOrArgument} - */ - - }, { - key: "parseGroupOfType", - value: function parseGroupOfType(innerMode, optional) { - var outerMode = this.mode; - // Handle `original` argTypes - if (innerMode === "original") { - innerMode = outerMode; - } - - if (innerMode === "color") { - return this.parseColorGroup(optional); - } - if (innerMode === "size") { - return this.parseSizeGroup(optional); - } - - this.switchMode(innerMode); - if (innerMode === "text") { - // text mode is special because it should ignore the whitespace before - // it - this.consumeSpaces(); - } - // By the time we get here, innerMode is one of "text" or "math". - // We switch the mode of the parser, recurse, then restore the old mode. - var res = this.parseGroup(optional); - this.switchMode(outerMode); - return res; - } - }, { - key: "consumeSpaces", - value: function consumeSpaces() { - while (this.nextToken.text === " ") { - this.consume(); - } - } - - /** - * Parses a group, essentially returning the string formed by the - * brace-enclosed tokens plus some position information. - * - * @param {string} modeName Used to describe the mode in error messages - * @param {boolean=} optional Whether the group is optional or required - */ - - }, { - key: "parseStringGroup", - value: function parseStringGroup(modeName, optional) { - if (optional && this.nextToken.text !== "[") { - return null; - } - var outerMode = this.mode; - this.mode = "text"; - this.expect(optional ? "[" : "{"); - var str = ""; - var firstToken = this.nextToken; - var lastToken = firstToken; - while (this.nextToken.text !== (optional ? "]" : "}")) { - if (this.nextToken.text === "EOF") { - throw new _ParseError2.default("Unexpected end of input in " + modeName, firstToken.range(this.nextToken, str)); - } - lastToken = this.nextToken; - str += lastToken.text; - this.consume(); - } - this.mode = outerMode; - this.expect(optional ? "]" : "}"); - return firstToken.range(lastToken, str); - } - - /** - * Parses a regex-delimited group: the largest sequence of tokens - * whose concatenated strings match `regex`. Returns the string - * formed by the tokens plus some position information. - * - * @param {RegExp} regex - * @param {string} modeName Used to describe the mode in error messages - */ - - }, { - key: "parseRegexGroup", - value: function parseRegexGroup(regex, modeName) { - var outerMode = this.mode; - this.mode = "text"; - var firstToken = this.nextToken; - var lastToken = firstToken; - var str = ""; - while (this.nextToken.text !== "EOF" && regex.test(str + this.nextToken.text)) { - lastToken = this.nextToken; - str += lastToken.text; - this.consume(); - } - if (str === "") { - throw new _ParseError2.default("Invalid " + modeName + ": '" + firstToken.text + "'", firstToken); - } - this.mode = outerMode; - return firstToken.range(lastToken, str); - } - - /** - * Parses a color description. - */ - - }, { - key: "parseColorGroup", - value: function parseColorGroup(optional) { - var res = this.parseStringGroup("color", optional); - if (!res) { - return null; - } - var match = /^(#[a-z0-9]+|[a-z]+)$/i.exec(res.text); - if (!match) { - throw new _ParseError2.default("Invalid color: '" + res.text + "'", res); - } - return new ParseFuncOrArgument(new _ParseNode2.default("color", match[0], this.mode), false); - } - - /** - * Parses a size specification, consisting of magnitude and unit. - */ - - }, { - key: "parseSizeGroup", - value: function parseSizeGroup(optional) { - var res = void 0; - if (!optional && this.nextToken.text !== "{") { - res = this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/, "size"); - } else { - res = this.parseStringGroup("size", optional); - } - if (!res) { - return null; - } - var match = /([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(res.text); - if (!match) { - throw new _ParseError2.default("Invalid size: '" + res.text + "'", res); - } - var data = { - number: +(match[1] + match[2]), // sign + magnitude, cast to number - unit: match[3] - }; - if (!_units2.default.validUnit(data)) { - throw new _ParseError2.default("Invalid unit: '" + data.unit + "'", res); - } - return new ParseFuncOrArgument(new _ParseNode2.default("size", data, this.mode), false); - } - - /** - * If the argument is false or absent, this parses an ordinary group, - * which is either a single nucleus (like "x") or an expression - * in braces (like "{x+y}"). - * If the argument is true, it parses either a bracket-delimited expression - * (like "[x+y]") or returns null to indicate the absence of a - * bracket-enclosed group. - * - * @param {boolean=} optional Whether the group is optional or required - * @return {?ParseFuncOrArgument} - */ - - }, { - key: "parseGroup", - value: function parseGroup(optional) { - var firstToken = this.nextToken; - // Try to parse an open brace - if (this.nextToken.text === (optional ? "[" : "{")) { - // If we get a brace, parse an expression - this.consume(); - var expression = this.parseExpression(false, optional ? "]" : null); - var lastToken = this.nextToken; - // Make sure we get a close brace - this.expect(optional ? "]" : "}"); - if (this.mode === "text") { - this.formLigatures(expression); - } - return new ParseFuncOrArgument(new _ParseNode2.default("ordgroup", expression, this.mode, firstToken, lastToken), false); - } else { - // Otherwise, just return a nucleus, or nothing for an optional group - return optional ? null : this.parseSymbol(); - } - } - - /** - * Form ligature-like combinations of characters for text mode. - * This includes inputs like "--", "---", "``" and "''". - * The result will simply replace multiple textord nodes with a single - * character in each value by a single textord node having multiple - * characters in its value. The representation is still ASCII source. - * - * @param {Array.} group the nodes of this group, - * list will be moified in place - */ - - }, { - key: "formLigatures", - value: function formLigatures(group) { - var n = group.length - 1; - for (var i = 0; i < n; ++i) { - var a = group[i]; - var v = a.value; - if (v === "-" && group[i + 1].value === "-") { - if (i + 1 < n && group[i + 2].value === "-") { - group.splice(i, 3, new _ParseNode2.default("textord", "---", "text", a, group[i + 2])); - n -= 2; - } else { - group.splice(i, 2, new _ParseNode2.default("textord", "--", "text", a, group[i + 1])); - n -= 1; - } - } - if ((v === "'" || v === "`") && group[i + 1].value === v) { - group.splice(i, 2, new _ParseNode2.default("textord", v + v, "text", a, group[i + 1])); - n -= 1; - } - } - } - - /** - * Parse a single symbol out of the string. Here, we handle both the functions - * we have defined, as well as the single character symbols - * - * @return {?ParseFuncOrArgument} - */ - - }, { - key: "parseSymbol", - value: function parseSymbol() { - var nucleus = this.nextToken; - - if (_functions2.default[nucleus.text]) { - this.consume(); - // If there exists a function with this name, we return the function and - // say that it is a function. - return new ParseFuncOrArgument(nucleus.text, true, nucleus); - } else if (_symbols2.default[this.mode][nucleus.text]) { - this.consume(); - // Otherwise if this is a no-argument function, find the type it - // corresponds to in the symbols map - return new ParseFuncOrArgument(new _ParseNode2.default(_symbols2.default[this.mode][nucleus.text].group, nucleus.text, this.mode, nucleus), false, nucleus); - } else if (this.mode === "text" && _unicodeRegexes.cjkRegex.test(nucleus.text)) { - this.consume(); - return new ParseFuncOrArgument(new _ParseNode2.default("textord", nucleus.text, this.mode, nucleus), false, nucleus); - } else if (nucleus.text === "$") { - return new ParseFuncOrArgument(nucleus.text, false, nucleus); - } else { - return null; - } - } - }]); - return Parser; - }(); - - Parser.endOfExpression = ["}", "\\end", "\\right", "&", "\\\\", "\\cr"]; - Parser.SUPSUB_GREEDINESS = 1; - Parser.sizeFuncs = ["\\tiny", "\\sixptsize", "\\scriptsize", "\\footnotesize", "\\small", "\\normalsize", "\\large", "\\Large", "\\LARGE", "\\huge", "\\Huge"]; - Parser.styleFuncs = ["\\displaystyle", "\\textstyle", "\\scriptstyle", "\\scriptscriptstyle"]; - Parser.oldFontFuncs = { - "\\rm": "mathrm", - "\\sf": "mathsf", - "\\tt": "mathtt", - "\\bf": "mathbf", - "\\it": "mathit" - }; - - - Parser.prototype.ParseNode = _ParseNode2.default; - - module.exports = Parser; - - },{"./MacroExpander":27,"./ParseError":29,"./ParseNode":30,"./environments":40,"./functions":43,"./symbols":48,"./unicodeRegexes":49,"./units":50,"./utils":51,"babel-runtime/helpers/classCallCheck":4,"babel-runtime/helpers/createClass":5}],32:[function(require,module,exports){ - - var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _utils = require("./utils"); - - var _utils2 = _interopRequireDefault(_utils); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /** - * The main Settings object - * - * The current options stored are: - * - displayMode: Whether the expression should be typeset as inline math - * (false, the default), meaning that the math starts in - * \textstyle and is placed in an inline-block); or as display - * math (true), meaning that the math starts in \displaystyle - * and is placed in a block with vertical margin. - */ - var Settings = function Settings(options) { - (0, _classCallCheck3.default)(this, Settings); - - // allow null options - options = options || {}; - this.displayMode = _utils2.default.deflt(options.displayMode, false); - this.throwOnError = _utils2.default.deflt(options.throwOnError, true); - this.errorColor = _utils2.default.deflt(options.errorColor, "#cc0000"); - this.macros = options.macros || {}; - this.colorIsTextColor = _utils2.default.deflt(options.colorIsTextColor, false); - }; /** - * This is a module for storing settings passed into KaTeX. It correctly handles - * default settings. - */ - - module.exports = Settings; - - },{"./utils":51,"babel-runtime/helpers/classCallCheck":4}],33:[function(require,module,exports){ - - var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = require("babel-runtime/helpers/createClass"); - - var _createClass3 = _interopRequireDefault(_createClass2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /** - * This file contains information and classes for the various kinds of styles - * used in TeX. It provides a generic `Style` class, which holds information - * about a specific style. It then provides instances of all the different kinds - * of styles possible, and provides functions to move between them and get - * information about them. - */ - - /** - * The main style class. Contains a unique id for the style, a size (which is - * the same for cramped and uncramped version of a style), and a cramped flag. - */ - var Style = function () { - function Style(id, size, cramped) { - (0, _classCallCheck3.default)(this, Style); - - this.id = id; - this.size = size; - this.cramped = cramped; - } - - /** - * Get the style of a superscript given a base in the current style. - */ - - - (0, _createClass3.default)(Style, [{ - key: "sup", - value: function sup() { - return styles[_sup[this.id]]; - } - - /** - * Get the style of a subscript given a base in the current style. - */ - - }, { - key: "sub", - value: function sub() { - return styles[_sub[this.id]]; - } - - /** - * Get the style of a fraction numerator given the fraction in the current - * style. - */ - - }, { - key: "fracNum", - value: function fracNum() { - return styles[_fracNum[this.id]]; - } - - /** - * Get the style of a fraction denominator given the fraction in the current - * style. - */ - - }, { - key: "fracDen", - value: function fracDen() { - return styles[_fracDen[this.id]]; - } - - /** - * Get the cramped version of a style (in particular, cramping a cramped style - * doesn't change the style). - */ - - }, { - key: "cramp", - value: function cramp() { - return styles[_cramp[this.id]]; - } - - /** - * Get a text or display version of this style. - */ - - }, { - key: "text", - value: function text() { - return styles[_text[this.id]]; - } - - /** - * Return if this style is tightly spaced (scriptstyle/scriptscriptstyle) - */ - - }, { - key: "isTight", - value: function isTight() { - return this.size >= 2; - } - }]); - return Style; - }(); - - // IDs of the different styles - - - var D = 0; - var Dc = 1; - var T = 2; - var Tc = 3; - var S = 4; - var Sc = 5; - var SS = 6; - var SSc = 7; - - // Instances of the different styles - var styles = [new Style(D, 0, false), new Style(Dc, 0, true), new Style(T, 1, false), new Style(Tc, 1, true), new Style(S, 2, false), new Style(Sc, 2, true), new Style(SS, 3, false), new Style(SSc, 3, true)]; - - // Lookup tables for switching from one style to another - var _sup = [S, Sc, S, Sc, SS, SSc, SS, SSc]; - var _sub = [Sc, Sc, Sc, Sc, SSc, SSc, SSc, SSc]; - var _fracNum = [T, Tc, S, Sc, SS, SSc, SS, SSc]; - var _fracDen = [Tc, Tc, Sc, Sc, SSc, SSc, SSc, SSc]; - var _cramp = [Dc, Dc, Tc, Tc, Sc, Sc, SSc, SSc]; - var _text = [D, Dc, T, Tc, T, Tc, T, Tc]; - - // We only export some of the styles. Also, we don't export the `Style` class so - // no more styles can be generated. - module.exports = { - DISPLAY: styles[D], - TEXT: styles[T], - SCRIPT: styles[S], - SCRIPTSCRIPT: styles[SS] - }; - - },{"babel-runtime/helpers/classCallCheck":4,"babel-runtime/helpers/createClass":5}],34:[function(require,module,exports){ - - var _domTree = require("./domTree"); - - var _domTree2 = _interopRequireDefault(_domTree); - - var _fontMetrics = require("./fontMetrics"); - - var _fontMetrics2 = _interopRequireDefault(_fontMetrics); - - var _symbols = require("./symbols"); - - var _symbols2 = _interopRequireDefault(_symbols); - - var _utils = require("./utils"); - - var _utils2 = _interopRequireDefault(_utils); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - // The following have to be loaded from Main-Italic font, using class mainit - /* eslint no-console:0 */ - /** - * This module contains general functions that can be used for building - * different kinds of domTree nodes in a consistent manner. - */ - - var mainitLetters = ["\\imath", // dotless i - "\\jmath", // dotless j - "\\pounds"]; - - /** - * Looks up the given symbol in fontMetrics, after applying any symbol - * replacements defined in symbol.js - */ - var lookupSymbol = function lookupSymbol(value, fontFamily, mode) { - // Replace the value with its replaced value from symbol.js - if (_symbols2.default[mode][value] && _symbols2.default[mode][value].replace) { - value = _symbols2.default[mode][value].replace; - } - return { - value: value, - metrics: _fontMetrics2.default.getCharacterMetrics(value, fontFamily) - }; - }; - - /** - * Makes a symbolNode after translation via the list of symbols in symbols.js. - * Correctly pulls out metrics for the character, and optionally takes a list of - * classes to be attached to the node. - * - * TODO: make argument order closer to makeSpan - * TODO: add a separate argument for math class (e.g. `mop`, `mbin`), which - * should if present come first in `classes`. - */ - var makeSymbol = function makeSymbol(value, fontFamily, mode, options, classes) { - var lookup = lookupSymbol(value, fontFamily, mode); - var metrics = lookup.metrics; - value = lookup.value; - - var symbolNode = void 0; - if (metrics) { - var italic = metrics.italic; - if (mode === "text") { - italic = 0; - } - symbolNode = new _domTree2.default.symbolNode(value, metrics.height, metrics.depth, italic, metrics.skew, classes); - } else { - // TODO(emily): Figure out a good way to only print this in development - typeof console !== "undefined" && console.warn("No character metrics for '" + value + "' in style '" + fontFamily + "'"); - symbolNode = new _domTree2.default.symbolNode(value, 0, 0, 0, 0, classes); - } - - if (options) { - symbolNode.maxFontSize = options.sizeMultiplier; - if (options.style.isTight()) { - symbolNode.classes.push("mtight"); - } - if (options.getColor()) { - symbolNode.style.color = options.getColor(); - } - } - - return symbolNode; - }; - - /** - * Makes a symbol in Main-Regular or AMS-Regular. - * Used for rel, bin, open, close, inner, and punct. - */ - var mathsym = function mathsym(value, mode, options, classes) { - // Decide what font to render the symbol in by its entry in the symbols - // table. - // Have a special case for when the value = \ because the \ is used as a - // textord in unsupported command errors but cannot be parsed as a regular - // text ordinal and is therefore not present as a symbol in the symbols - // table for text - if (value === "\\" || _symbols2.default[mode][value].font === "main") { - return makeSymbol(value, "Main-Regular", mode, options, classes); - } else { - return makeSymbol(value, "AMS-Regular", mode, options, classes.concat(["amsrm"])); - } - }; - - /** - * Makes a symbol in the default font for mathords and textords. - */ - var mathDefault = function mathDefault(value, mode, options, classes, type) { - if (type === "mathord") { - var fontLookup = mathit(value); - return makeSymbol(value, fontLookup.fontName, mode, options, classes.concat([fontLookup.fontClass])); - } else if (type === "textord") { - var font = _symbols2.default[mode][value] && _symbols2.default[mode][value].font; - if (font === "ams") { - return makeSymbol(value, "AMS-Regular", mode, options, classes.concat(["amsrm"])); - } else { - // if (font === "main") { - return makeSymbol(value, "Main-Regular", mode, options, classes.concat(["mathrm"])); - } - } else { - throw new Error("unexpected type: " + type + " in mathDefault"); - } - }; - - /** - * Determines which of the two font names (Main-Italic and Math-Italic) and - * corresponding style tags (mainit or mathit) to use for font "mathit", - * depending on the symbol. Use this function instead of fontMap for font - * "mathit". - */ - var mathit = function mathit(value, mode, options, classes) { - if (/[0-9]/.test(value.charAt(0)) || - // glyphs for \imath and \jmath do not exist in Math-Italic so we - // need to use Main-Italic instead - _utils2.default.contains(mainitLetters, value)) { - return { - fontName: "Main-Italic", - fontClass: "mainit" - }; - } else { - return { - fontName: "Math-Italic", - fontClass: "mathit" - }; - } - }; - - /** - * Makes either a mathord or textord in the correct font and color. - */ - var makeOrd = function makeOrd(group, options, type) { - var mode = group.mode; - var value = group.value; - - var classes = ["mord"]; - - var font = options.font; - if (font) { - var fontLookup = void 0; - if (font === "mathit" || _utils2.default.contains(mainitLetters, value)) { - fontLookup = mathit(value); - } else { - fontLookup = fontMap[font]; - } - if (lookupSymbol(value, fontLookup.fontName, mode).metrics) { - return makeSymbol(value, fontLookup.fontName, mode, options, classes.concat([fontLookup.fontClass || font])); - } else { - return mathDefault(value, mode, options, classes, type); - } - } else { - return mathDefault(value, mode, options, classes, type); - } - }; - - /** - * Calculate the height, depth, and maxFontSize of an element based on its - * children. - */ - var sizeElementFromChildren = function sizeElementFromChildren(elem) { - var height = 0; - var depth = 0; - var maxFontSize = 0; - - if (elem.children) { - for (var i = 0; i < elem.children.length; i++) { - if (elem.children[i].height > height) { - height = elem.children[i].height; - } - if (elem.children[i].depth > depth) { - depth = elem.children[i].depth; - } - if (elem.children[i].maxFontSize > maxFontSize) { - maxFontSize = elem.children[i].maxFontSize; - } - } - } - - elem.height = height; - elem.depth = depth; - elem.maxFontSize = maxFontSize; - }; - - /** - * Makes a span with the given list of classes, list of children, and options. - * - * TODO: Ensure that `options` is always provided (currently some call sites - * don't pass it). - * TODO: add a separate argument for math class (e.g. `mop`, `mbin`), which - * should if present come first in `classes`. - */ - var makeSpan = function makeSpan(classes, children, options) { - var span = new _domTree2.default.span(classes, children, options); - - sizeElementFromChildren(span); - - return span; - }; - - /** - * Prepends the given children to the given span, updating height, depth, and - * maxFontSize. - */ - var prependChildren = function prependChildren(span, children) { - span.children = children.concat(span.children); - - sizeElementFromChildren(span); - }; - - /** - * Makes a document fragment with the given list of children. - */ - var makeFragment = function makeFragment(children) { - var fragment = new _domTree2.default.documentFragment(children); - - sizeElementFromChildren(fragment); - - return fragment; - }; - - /** - * Makes a vertical list by stacking elements and kerns on top of each other. - * Allows for many different ways of specifying the positioning method. - * - * Arguments: - * - children: A list of child or kern nodes to be stacked on top of each other - * (i.e. the first element will be at the bottom, and the last at - * the top). Element nodes are specified as - * {type: "elem", elem: node} - * while kern nodes are specified as - * {type: "kern", size: size} - * - positionType: The method by which the vlist should be positioned. Valid - * values are: - * - "individualShift": The children list only contains elem - * nodes, and each node contains an extra - * "shift" value of how much it should be - * shifted (note that shifting is always - * moving downwards). positionData is - * ignored. - * - "top": The positionData specifies the topmost point of - * the vlist (note this is expected to be a height, - * so positive values move up) - * - "bottom": The positionData specifies the bottommost point - * of the vlist (note this is expected to be a - * depth, so positive values move down - * - "shift": The vlist will be positioned such that its - * baseline is positionData away from the baseline - * of the first child. Positive values move - * downwards. - * - "firstBaseline": The vlist will be positioned such that - * its baseline is aligned with the - * baseline of the first child. - * positionData is ignored. (this is - * equivalent to "shift" with - * positionData=0) - * - positionData: Data used in different ways depending on positionType - * - options: An Options object - * - */ - var makeVList = function makeVList(children, positionType, positionData, options) { - var depth = void 0; - var currPos = void 0; - var i = void 0; - if (positionType === "individualShift") { - var oldChildren = children; - children = [oldChildren[0]]; - - // Add in kerns to the list of children to get each element to be - // shifted to the correct specified shift - depth = -oldChildren[0].shift - oldChildren[0].elem.depth; - currPos = depth; - for (i = 1; i < oldChildren.length; i++) { - var diff = -oldChildren[i].shift - currPos - oldChildren[i].elem.depth; - var size = diff - (oldChildren[i - 1].elem.height + oldChildren[i - 1].elem.depth); - - currPos = currPos + diff; - - children.push({ type: "kern", size: size }); - children.push(oldChildren[i]); - } - } else if (positionType === "top") { - // We always start at the bottom, so calculate the bottom by adding up - // all the sizes - var bottom = positionData; - for (i = 0; i < children.length; i++) { - if (children[i].type === "kern") { - bottom -= children[i].size; - } else { - bottom -= children[i].elem.height + children[i].elem.depth; - } - } - depth = bottom; - } else if (positionType === "bottom") { - depth = -positionData; - } else if (positionType === "shift") { - depth = -children[0].elem.depth - positionData; - } else if (positionType === "firstBaseline") { - depth = -children[0].elem.depth; - } else { - depth = 0; - } - - // Create a strut that is taller than any list item. The strut is added to - // each item, where it will determine the item's baseline. Since it has - // `overflow:hidden`, the strut's top edge will sit on the item's line box's - // top edge and the strut's bottom edge will sit on the item's baseline, - // with no additional line-height spacing. This allows the item baseline to - // be positioned precisely without worrying about font ascent and - // line-height. - var pstrutSize = 0; - for (i = 0; i < children.length; i++) { - if (children[i].type === "elem") { - var child = children[i].elem; - pstrutSize = Math.max(pstrutSize, child.maxFontSize, child.height); - } - } - pstrutSize += 2; - var pstrut = makeSpan(["pstrut"], []); - pstrut.style.height = pstrutSize + "em"; - - // Create a new list of actual children at the correct offsets - var realChildren = []; - var minPos = depth; - var maxPos = depth; - currPos = depth; - for (i = 0; i < children.length; i++) { - if (children[i].type === "kern") { - currPos += children[i].size; - } else { - var _child = children[i].elem; - - var childWrap = makeSpan([], [pstrut, _child]); - childWrap.style.top = -pstrutSize - currPos - _child.depth + "em"; - if (children[i].marginLeft) { - childWrap.style.marginLeft = children[i].marginLeft; - } - if (children[i].marginRight) { - childWrap.style.marginRight = children[i].marginRight; - } - - realChildren.push(childWrap); - currPos += _child.height + _child.depth; - } - minPos = Math.min(minPos, currPos); - maxPos = Math.max(maxPos, currPos); - } - - // The vlist contents go in a table-cell with `vertical-align:bottom`. - // This cell's bottom edge will determine the containing table's baseline - // without overly expanding the containing line-box. - var vlist = makeSpan(["vlist"], realChildren); - vlist.style.height = maxPos + "em"; - - // A second row is used if necessary to represent the vlist's depth. - var rows = void 0; - if (minPos < 0) { - var depthStrut = makeSpan(["vlist"], []); - depthStrut.style.height = -minPos + "em"; - - // Safari wants the first row to have inline content; otherwise it - // puts the bottom of the *second* row on the baseline. - var topStrut = makeSpan(["vlist-s"], [new _domTree2.default.symbolNode("\u200B")]); - - rows = [makeSpan(["vlist-r"], [vlist, topStrut]), makeSpan(["vlist-r"], [depthStrut])]; - } else { - rows = [makeSpan(["vlist-r"], [vlist])]; - } - - var vtable = makeSpan(["vlist-t"], rows); - if (rows.length === 2) { - vtable.classes.push("vlist-t2"); - } - vtable.height = maxPos; - vtable.depth = -minPos; - return vtable; - }; - - // A map of spacing functions to their attributes, like size and corresponding - // CSS class - var spacingFunctions = { - "\\qquad": { - size: "2em", - className: "qquad" - }, - "\\quad": { - size: "1em", - className: "quad" - }, - "\\enspace": { - size: "0.5em", - className: "enspace" - }, - "\\;": { - size: "0.277778em", - className: "thickspace" - }, - "\\:": { - size: "0.22222em", - className: "mediumspace" - }, - "\\,": { - size: "0.16667em", - className: "thinspace" - }, - "\\!": { - size: "-0.16667em", - className: "negativethinspace" - } - }; - - /** - * Maps TeX font commands to objects containing: - * - variant: string used for "mathvariant" attribute in buildMathML.js - * - fontName: the "style" parameter to fontMetrics.getCharacterMetrics - */ - // A map between tex font commands an MathML mathvariant attribute values - var fontMap = { - // styles - "mathbf": { - variant: "bold", - fontName: "Main-Bold" - }, - "mathrm": { - variant: "normal", - fontName: "Main-Regular" - }, - "textit": { - variant: "italic", - fontName: "Main-Italic" - }, - - // "mathit" is missing because it requires the use of two fonts: Main-Italic - // and Math-Italic. This is handled by a special case in makeOrd which ends - // up calling mathit. - - // families - "mathbb": { - variant: "double-struck", - fontName: "AMS-Regular" - }, - "mathcal": { - variant: "script", - fontName: "Caligraphic-Regular" - }, - "mathfrak": { - variant: "fraktur", - fontName: "Fraktur-Regular" - }, - "mathscr": { - variant: "script", - fontName: "Script-Regular" - }, - "mathsf": { - variant: "sans-serif", - fontName: "SansSerif-Regular" - }, - "mathtt": { - variant: "monospace", - fontName: "Typewriter-Regular" - } - }; - - module.exports = { - fontMap: fontMap, - makeSymbol: makeSymbol, - mathsym: mathsym, - makeSpan: makeSpan, - makeFragment: makeFragment, - makeVList: makeVList, - makeOrd: makeOrd, - prependChildren: prependChildren, - spacingFunctions: spacingFunctions - }; - - },{"./domTree":39,"./fontMetrics":41,"./symbols":48,"./utils":51}],35:[function(require,module,exports){ - - var _stringify = require("babel-runtime/core-js/json/stringify"); - - var _stringify2 = _interopRequireDefault(_stringify); - - var _ParseError = require("./ParseError"); - - var _ParseError2 = _interopRequireDefault(_ParseError); - - var _Style = require("./Style"); - - var _Style2 = _interopRequireDefault(_Style); - - var _buildCommon = require("./buildCommon"); - - var _buildCommon2 = _interopRequireDefault(_buildCommon); - - var _delimiter = require("./delimiter"); - - var _delimiter2 = _interopRequireDefault(_delimiter); - - var _domTree = require("./domTree"); - - var _domTree2 = _interopRequireDefault(_domTree); - - var _units = require("./units"); - - var _units2 = _interopRequireDefault(_units); - - var _utils = require("./utils"); - - var _utils2 = _interopRequireDefault(_utils); - - var _stretchy = require("./stretchy"); - - var _stretchy2 = _interopRequireDefault(_stretchy); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /* eslint no-console:0 */ - /** - * This file does the main work of building a domTree structure from a parse - * tree. The entry point is the `buildHTML` function, which takes a parse tree. - * Then, the buildExpression, buildGroup, and various groupTypes functions are - * called, to produce a final HTML tree. - */ - - var isSpace = function isSpace(node) { - return node instanceof _domTree2.default.span && node.classes[0] === "mspace"; - }; - - // Binary atoms (first class `mbin`) change into ordinary atoms (`mord`) - // depending on their surroundings. See TeXbook pg. 442-446, Rules 5 and 6, - // and the text before Rule 19. - var isBin = function isBin(node) { - return node && node.classes[0] === "mbin"; - }; - - var isBinLeftCanceller = function isBinLeftCanceller(node, isRealGroup) { - // TODO: This code assumes that a node's math class is the first element - // of its `classes` array. A later cleanup should ensure this, for - // instance by changing the signature of `makeSpan`. - if (node) { - return _utils2.default.contains(["mbin", "mopen", "mrel", "mop", "mpunct"], node.classes[0]); - } else { - return isRealGroup; - } - }; - - var isBinRightCanceller = function isBinRightCanceller(node, isRealGroup) { - if (node) { - return _utils2.default.contains(["mrel", "mclose", "mpunct"], node.classes[0]); - } else { - return isRealGroup; - } - }; - - /** - * Splice out any spaces from `children` starting at position `i`, and return - * the spliced-out array. Returns null if `children[i]` does not exist or is not - * a space. - */ - var spliceSpaces = function spliceSpaces(children, i) { - var j = i; - while (j < children.length && isSpace(children[j])) { - j++; - } - if (j === i) { - return null; - } else { - return children.splice(i, j - i); - } - }; - - /** - * Take a list of nodes, build them in order, and return a list of the built - * nodes. documentFragments are flattened into their contents, so the - * returned list contains no fragments. `isRealGroup` is true if `expression` - * is a real group (no atoms will be added on either side), as opposed to - * a partial group (e.g. one created by \color). - */ - var buildExpression = function buildExpression(expression, options, isRealGroup) { - // Parse expressions into `groups`. - var groups = []; - for (var i = 0; i < expression.length; i++) { - var group = expression[i]; - var output = buildGroup(group, options); - if (output instanceof _domTree2.default.documentFragment) { - Array.prototype.push.apply(groups, output.children); - } else { - groups.push(output); - } - } - // At this point `groups` consists entirely of `symbolNode`s and `span`s. - - // Explicit spaces (e.g., \;, \,) should be ignored with respect to atom - // spacing (e.g., "add thick space between mord and mrel"). Since CSS - // adjacency rules implement atom spacing, spaces should be invisible to - // CSS. So we splice them out of `groups` and into the atoms themselves. - for (var _i = 0; _i < groups.length; _i++) { - var spaces = spliceSpaces(groups, _i); - if (spaces) { - // Splicing of spaces may have removed all remaining groups. - if (_i < groups.length) { - // If there is a following group, move space within it. - if (groups[_i] instanceof _domTree2.default.symbolNode) { - groups[_i] = (0, _buildCommon.makeSpan)([].concat(groups[_i].classes), [groups[_i]]); - } - _buildCommon2.default.prependChildren(groups[_i], spaces); - } else { - // Otherwise, put any spaces back at the end of the groups. - Array.prototype.push.apply(groups, spaces); - break; - } - } - } - - // Binary operators change to ordinary symbols in some contexts. - for (var _i2 = 0; _i2 < groups.length; _i2++) { - if (isBin(groups[_i2]) && (isBinLeftCanceller(groups[_i2 - 1], isRealGroup) || isBinRightCanceller(groups[_i2 + 1], isRealGroup))) { - groups[_i2].classes[0] = "mord"; - } - } - - // Process \\not commands within the group. - // TODO(kevinb): Handle multiple \\not commands in a row. - // TODO(kevinb): Handle \\not{abc} correctly. The \\not should appear over - // the 'a' instead of the 'c'. - for (var _i3 = 0; _i3 < groups.length; _i3++) { - if (groups[_i3].value === "\u0338" && _i3 + 1 < groups.length) { - var children = groups.slice(_i3, _i3 + 2); - - children[0].classes = ["mainrm"]; - // \u0338 is a combining glyph so we could reorder the children so - // that it comes after the other glyph. This works correctly on - // most browsers except for Safari. Instead we absolutely position - // the glyph and set its right side to match that of the other - // glyph which is visually equivalent. - children[0].style.position = "absolute"; - children[0].style.right = "0"; - - // Copy the classes from the second glyph to the new container. - // This is so it behaves the same as though there was no \\not. - var classes = groups[_i3 + 1].classes; - var container = (0, _buildCommon.makeSpan)(classes, children); - - // LaTeX adds a space between ords separated by a \\not. - if (classes.indexOf("mord") !== -1) { - // \glue(\thickmuskip) 2.77771 plus 2.77771 - container.style.paddingLeft = "0.277771em"; - } - - // Ensure that the \u0338 is positioned relative to the container. - container.style.position = "relative"; - groups.splice(_i3, 2, container); - } - } - - return groups; - }; - - // Return math atom class (mclass) of a domTree. - var getTypeOfDomTree = function getTypeOfDomTree(node) { - if (node instanceof _domTree2.default.documentFragment) { - if (node.children.length) { - return getTypeOfDomTree(node.children[node.children.length - 1]); - } - } else { - if (_utils2.default.contains(["mord", "mop", "mbin", "mrel", "mopen", "mclose", "mpunct", "minner"], node.classes[0])) { - return node.classes[0]; - } - } - return null; - }; - - /** - * Sometimes, groups perform special rules when they have superscripts or - * subscripts attached to them. This function lets the `supsub` group know that - * its inner element should handle the superscripts and subscripts instead of - * handling them itself. - */ - var shouldHandleSupSub = function shouldHandleSupSub(group, options) { - if (!group.value.base) { - return false; - } else { - var base = group.value.base; - if (base.type === "op") { - // Operators handle supsubs differently when they have limits - // (e.g. `\displaystyle\sum_2^3`) - return base.value.limits && (options.style.size === _Style2.default.DISPLAY.size || base.value.alwaysHandleSupSub); - } else if (base.type === "accent") { - return isCharacterBox(base.value.base); - } else if (base.type === "horizBrace") { - var isSup = group.value.sub ? false : true; - return isSup === base.value.isOver; - } else { - return null; - } - } - }; - - /** - * Sometimes we want to pull out the innermost element of a group. In most - * cases, this will just be the group itself, but when ordgroups and colors have - * a single element, we want to pull that out. - */ - var getBaseElem = function getBaseElem(group) { - if (!group) { - return false; - } else if (group.type === "ordgroup") { - if (group.value.length === 1) { - return getBaseElem(group.value[0]); - } else { - return group; - } - } else if (group.type === "color") { - if (group.value.value.length === 1) { - return getBaseElem(group.value.value[0]); - } else { - return group; - } - } else if (group.type === "font") { - return getBaseElem(group.value.body); - } else { - return group; - } - }; - - /** - * TeXbook algorithms often reference "character boxes", which are simply groups - * with a single character in them. To decide if something is a character box, - * we find its innermost group, and see if it is a single character. - */ - var isCharacterBox = function isCharacterBox(group) { - var baseElem = getBaseElem(group); - - // These are all they types of groups which hold single characters - return baseElem.type === "mathord" || baseElem.type === "textord" || baseElem.type === "bin" || baseElem.type === "rel" || baseElem.type === "inner" || baseElem.type === "open" || baseElem.type === "close" || baseElem.type === "punct"; - }; - - var makeNullDelimiter = function makeNullDelimiter(options, classes) { - var moreClasses = ["nulldelimiter"].concat(options.baseSizingClasses()); - return (0, _buildCommon.makeSpan)(classes.concat(moreClasses)); - }; - - /** - * This is a map of group types to the function used to handle that type. - * Simpler types come at the beginning, while complicated types come afterwards. - */ - var groupTypes = {}; - - groupTypes.mathord = function (group, options) { - return _buildCommon2.default.makeOrd(group, options, "mathord"); - }; - - groupTypes.textord = function (group, options) { - return _buildCommon2.default.makeOrd(group, options, "textord"); - }; - - groupTypes.bin = function (group, options) { - return _buildCommon2.default.mathsym(group.value, group.mode, options, ["mbin"]); - }; - - groupTypes.rel = function (group, options) { - return _buildCommon2.default.mathsym(group.value, group.mode, options, ["mrel"]); - }; - - groupTypes.open = function (group, options) { - return _buildCommon2.default.mathsym(group.value, group.mode, options, ["mopen"]); - }; - - groupTypes.close = function (group, options) { - return _buildCommon2.default.mathsym(group.value, group.mode, options, ["mclose"]); - }; - - groupTypes.inner = function (group, options) { - return _buildCommon2.default.mathsym(group.value, group.mode, options, ["minner"]); - }; - - groupTypes.punct = function (group, options) { - return _buildCommon2.default.mathsym(group.value, group.mode, options, ["mpunct"]); - }; - - groupTypes.ordgroup = function (group, options) { - return (0, _buildCommon.makeSpan)(["mord"], buildExpression(group.value, options, true), options); - }; - - groupTypes.text = function (group, options) { - var newOptions = options.withFont(group.value.style); - var inner = buildExpression(group.value.body, newOptions, true); - for (var i = 0; i < inner.length - 1; i++) { - if (inner[i].tryCombine(inner[i + 1])) { - inner.splice(i + 1, 1); - i--; - } - } - return (0, _buildCommon.makeSpan)(["mord", "text"], inner, newOptions); - }; - - groupTypes.color = function (group, options) { - var elements = buildExpression(group.value.value, options.withColor(group.value.color), false); - - // \color isn't supposed to affect the type of the elements it contains. - // To accomplish this, we wrap the results in a fragment, so the inner - // elements will be able to directly interact with their neighbors. For - // example, `\color{red}{2 +} 3` has the same spacing as `2 + 3` - return new _buildCommon2.default.makeFragment(elements); - }; - - groupTypes.supsub = function (group, options) { - // Superscript and subscripts are handled in the TeXbook on page - // 445-446, rules 18(a-f). - - // Here is where we defer to the inner group if it should handle - // superscripts and subscripts itself. - if (shouldHandleSupSub(group, options)) { - return groupTypes[group.value.base.type](group, options); - } - - var base = buildGroup(group.value.base, options); - var supm = void 0; - var subm = void 0; - - var metrics = options.fontMetrics(); - var newOptions = void 0; - - // Rule 18a - var supShift = 0; - var subShift = 0; - - if (group.value.sup) { - newOptions = options.havingStyle(options.style.sup()); - supm = buildGroup(group.value.sup, newOptions, options); - if (!isCharacterBox(group.value.base)) { - supShift = base.height - newOptions.fontMetrics().supDrop * newOptions.sizeMultiplier / options.sizeMultiplier; - } - } - - if (group.value.sub) { - newOptions = options.havingStyle(options.style.sub()); - subm = buildGroup(group.value.sub, newOptions, options); - if (!isCharacterBox(group.value.base)) { - subShift = base.depth + newOptions.fontMetrics().subDrop * newOptions.sizeMultiplier / options.sizeMultiplier; - } - } - - // Rule 18c - var minSupShift = void 0; - if (options.style === _Style2.default.DISPLAY) { - minSupShift = metrics.sup1; - } else if (options.style.cramped) { - minSupShift = metrics.sup3; - } else { - minSupShift = metrics.sup2; - } - - // scriptspace is a font-size-independent size, so scale it - // appropriately - var multiplier = options.sizeMultiplier; - var scriptspace = 0.5 / metrics.ptPerEm / multiplier + "em"; - - var supsub = void 0; - if (!group.value.sup) { - // Rule 18b - subShift = Math.max(subShift, metrics.sub1, subm.height - 0.8 * metrics.xHeight); - - var vlistElem = [{ type: "elem", elem: subm, marginRight: scriptspace }]; - // Subscripts shouldn't be shifted by the base's italic correction. - // Account for that by shifting the subscript back the appropriate - // amount. Note we only do this when the base is a single symbol. - if (base instanceof _domTree2.default.symbolNode) { - vlistElem[0].marginLeft = -base.italic + "em"; - } - - supsub = _buildCommon2.default.makeVList(vlistElem, "shift", subShift, options); - } else if (!group.value.sub) { - // Rule 18c, d - supShift = Math.max(supShift, minSupShift, supm.depth + 0.25 * metrics.xHeight); - - supsub = _buildCommon2.default.makeVList([{ type: "elem", elem: supm, marginRight: scriptspace }], "shift", -supShift, options); - } else { - supShift = Math.max(supShift, minSupShift, supm.depth + 0.25 * metrics.xHeight); - subShift = Math.max(subShift, metrics.sub2); - - var ruleWidth = metrics.defaultRuleThickness; - - // Rule 18e - if (supShift - supm.depth - (subm.height - subShift) < 4 * ruleWidth) { - subShift = 4 * ruleWidth - (supShift - supm.depth) + subm.height; - var psi = 0.8 * metrics.xHeight - (supShift - supm.depth); - if (psi > 0) { - supShift += psi; - subShift -= psi; - } - } - - var _vlistElem = [{ type: "elem", elem: subm, shift: subShift, marginRight: scriptspace }, { type: "elem", elem: supm, shift: -supShift, marginRight: scriptspace }]; - // See comment above about subscripts not being shifted - if (base instanceof _domTree2.default.symbolNode) { - _vlistElem[0].marginLeft = -base.italic + "em"; - } - - supsub = _buildCommon2.default.makeVList(_vlistElem, "individualShift", null, options); - } - - // We ensure to wrap the supsub vlist in a span.msupsub to reset text-align - var mclass = getTypeOfDomTree(base) || "mord"; - return (0, _buildCommon.makeSpan)([mclass], [base, (0, _buildCommon.makeSpan)(["msupsub"], [supsub])], options); - }; - - groupTypes.genfrac = function (group, options) { - // Fractions are handled in the TeXbook on pages 444-445, rules 15(a-e). - // Figure out what style this fraction should be in based on the - // function used - var style = options.style; - if (group.value.size === "display") { - style = _Style2.default.DISPLAY; - } else if (group.value.size === "text") { - style = _Style2.default.TEXT; - } - - var nstyle = style.fracNum(); - var dstyle = style.fracDen(); - var newOptions = void 0; - - newOptions = options.havingStyle(nstyle); - var numerm = buildGroup(group.value.numer, newOptions, options); - - newOptions = options.havingStyle(dstyle); - var denomm = buildGroup(group.value.denom, newOptions, options); - - var rule = void 0; - var ruleWidth = void 0; - var ruleSpacing = void 0; - if (group.value.hasBarLine) { - rule = makeLineSpan("frac-line", options); - ruleWidth = rule.height; - ruleSpacing = rule.height; - } else { - rule = null; - ruleWidth = 0; - ruleSpacing = options.fontMetrics().defaultRuleThickness; - } - - // Rule 15b - var numShift = void 0; - var clearance = void 0; - var denomShift = void 0; - if (style.size === _Style2.default.DISPLAY.size) { - numShift = options.fontMetrics().num1; - if (ruleWidth > 0) { - clearance = 3 * ruleSpacing; - } else { - clearance = 7 * ruleSpacing; - } - denomShift = options.fontMetrics().denom1; - } else { - if (ruleWidth > 0) { - numShift = options.fontMetrics().num2; - clearance = ruleSpacing; - } else { - numShift = options.fontMetrics().num3; - clearance = 3 * ruleSpacing; - } - denomShift = options.fontMetrics().denom2; - } - - var frac = void 0; - if (ruleWidth === 0) { - // Rule 15c - var candidateClearance = numShift - numerm.depth - (denomm.height - denomShift); - if (candidateClearance < clearance) { - numShift += 0.5 * (clearance - candidateClearance); - denomShift += 0.5 * (clearance - candidateClearance); - } - - frac = _buildCommon2.default.makeVList([{ type: "elem", elem: denomm, shift: denomShift }, { type: "elem", elem: numerm, shift: -numShift }], "individualShift", null, options); - } else { - // Rule 15d - var axisHeight = options.fontMetrics().axisHeight; - - if (numShift - numerm.depth - (axisHeight + 0.5 * ruleWidth) < clearance) { - numShift += clearance - (numShift - numerm.depth - (axisHeight + 0.5 * ruleWidth)); - } - - if (axisHeight - 0.5 * ruleWidth - (denomm.height - denomShift) < clearance) { - denomShift += clearance - (axisHeight - 0.5 * ruleWidth - (denomm.height - denomShift)); - } - - var midShift = -(axisHeight - 0.5 * ruleWidth); - - frac = _buildCommon2.default.makeVList([{ type: "elem", elem: denomm, shift: denomShift }, { type: "elem", elem: rule, shift: midShift }, { type: "elem", elem: numerm, shift: -numShift }], "individualShift", null, options); - } - - // Since we manually change the style sometimes (with \dfrac or \tfrac), - // account for the possible size change here. - newOptions = options.havingStyle(style); - frac.height *= newOptions.sizeMultiplier / options.sizeMultiplier; - frac.depth *= newOptions.sizeMultiplier / options.sizeMultiplier; - - // Rule 15e - var delimSize = void 0; - if (style.size === _Style2.default.DISPLAY.size) { - delimSize = options.fontMetrics().delim1; - } else { - delimSize = options.fontMetrics().delim2; - } - - var leftDelim = void 0; - var rightDelim = void 0; - if (group.value.leftDelim == null) { - leftDelim = makeNullDelimiter(options, ["mopen"]); - } else { - leftDelim = _delimiter2.default.customSizedDelim(group.value.leftDelim, delimSize, true, options.havingStyle(style), group.mode, ["mopen"]); - } - if (group.value.rightDelim == null) { - rightDelim = makeNullDelimiter(options, ["mclose"]); - } else { - rightDelim = _delimiter2.default.customSizedDelim(group.value.rightDelim, delimSize, true, options.havingStyle(style), group.mode, ["mclose"]); - } - - return (0, _buildCommon.makeSpan)(["mord"].concat(newOptions.sizingClasses(options)), [leftDelim, (0, _buildCommon.makeSpan)(["mfrac"], [frac]), rightDelim], options); - }; - - groupTypes.array = function (group, options) { - var r = void 0; - var c = void 0; - var nr = group.value.body.length; - var nc = 0; - var body = new Array(nr); - - // Horizontal spacing - var pt = 1 / options.fontMetrics().ptPerEm; - var arraycolsep = 5 * pt; // \arraycolsep in article.cls - - // Vertical spacing - var baselineskip = 12 * pt; // see size10.clo - // Default \jot from ltmath.dtx - // TODO(edemaine): allow overriding \jot via \setlength (#687) - var jot = 3 * pt; - // Default \arraystretch from lttab.dtx - // TODO(gagern): may get redefined once we have user-defined macros - var arraystretch = _utils2.default.deflt(group.value.arraystretch, 1); - var arrayskip = arraystretch * baselineskip; - var arstrutHeight = 0.7 * arrayskip; // \strutbox in ltfsstrc.dtx and - var arstrutDepth = 0.3 * arrayskip; // \@arstrutbox in lttab.dtx - - var totalHeight = 0; - for (r = 0; r < group.value.body.length; ++r) { - var inrow = group.value.body[r]; - var height = arstrutHeight; // \@array adds an \@arstrut - var depth = arstrutDepth; // to each tow (via the template) - - if (nc < inrow.length) { - nc = inrow.length; - } - - var outrow = new Array(inrow.length); - for (c = 0; c < inrow.length; ++c) { - var elt = buildGroup(inrow[c], options); - if (depth < elt.depth) { - depth = elt.depth; - } - if (height < elt.height) { - height = elt.height; - } - outrow[c] = elt; - } - - var gap = 0; - if (group.value.rowGaps[r]) { - gap = _units2.default.calculateSize(group.value.rowGaps[r].value, options); - if (gap > 0) { - // \@argarraycr - gap += arstrutDepth; - if (depth < gap) { - depth = gap; // \@xargarraycr - } - gap = 0; - } - } - // In AMS multiline environments such as aligned and gathered, rows - // correspond to lines that have additional \jot added to the - // \baselineskip via \openup. - if (group.value.addJot) { - depth += jot; - } - - outrow.height = height; - outrow.depth = depth; - totalHeight += height; - outrow.pos = totalHeight; - totalHeight += depth + gap; // \@yargarraycr - body[r] = outrow; - } - - var offset = totalHeight / 2 + options.fontMetrics().axisHeight; - var colDescriptions = group.value.cols || []; - var cols = []; - var colSep = void 0; - var colDescrNum = void 0; - for (c = 0, colDescrNum = 0; - // Continue while either there are more columns or more column - // descriptions, so trailing separators don't get lost. - c < nc || colDescrNum < colDescriptions.length; ++c, ++colDescrNum) { - - var colDescr = colDescriptions[colDescrNum] || {}; - - var firstSeparator = true; - while (colDescr.type === "separator") { - // If there is more than one separator in a row, add a space - // between them. - if (!firstSeparator) { - colSep = (0, _buildCommon.makeSpan)(["arraycolsep"], []); - colSep.style.width = options.fontMetrics().doubleRuleSep + "em"; - cols.push(colSep); - } - - if (colDescr.separator === "|") { - var separator = (0, _buildCommon.makeSpan)(["vertical-separator"], []); - separator.style.height = totalHeight + "em"; - separator.style.verticalAlign = -(totalHeight - offset) + "em"; - - cols.push(separator); - } else { - throw new _ParseError2.default("Invalid separator type: " + colDescr.separator); - } - - colDescrNum++; - colDescr = colDescriptions[colDescrNum] || {}; - firstSeparator = false; - } - - if (c >= nc) { - continue; - } - - var sepwidth = void 0; - if (c > 0 || group.value.hskipBeforeAndAfter) { - sepwidth = _utils2.default.deflt(colDescr.pregap, arraycolsep); - if (sepwidth !== 0) { - colSep = (0, _buildCommon.makeSpan)(["arraycolsep"], []); - colSep.style.width = sepwidth + "em"; - cols.push(colSep); - } - } - - var col = []; - for (r = 0; r < nr; ++r) { - var row = body[r]; - var elem = row[c]; - if (!elem) { - continue; - } - var shift = row.pos - offset; - elem.depth = row.depth; - elem.height = row.height; - col.push({ type: "elem", elem: elem, shift: shift }); - } - - col = _buildCommon2.default.makeVList(col, "individualShift", null, options); - col = (0, _buildCommon.makeSpan)(["col-align-" + (colDescr.align || "c")], [col]); - cols.push(col); - - if (c < nc - 1 || group.value.hskipBeforeAndAfter) { - sepwidth = _utils2.default.deflt(colDescr.postgap, arraycolsep); - if (sepwidth !== 0) { - colSep = (0, _buildCommon.makeSpan)(["arraycolsep"], []); - colSep.style.width = sepwidth + "em"; - cols.push(colSep); - } - } - } - body = (0, _buildCommon.makeSpan)(["mtable"], cols); - return (0, _buildCommon.makeSpan)(["mord"], [body], options); - }; - - groupTypes.spacing = function (group, options) { - if (group.value === "\\ " || group.value === "\\space" || group.value === " " || group.value === "~") { - // Spaces are generated by adding an actual space. Each of these - // things has an entry in the symbols table, so these will be turned - // into appropriate outputs. - if (group.mode === "text") { - return _buildCommon2.default.makeOrd(group, options, "textord"); - } else { - return (0, _buildCommon.makeSpan)(["mspace"], [_buildCommon2.default.mathsym(group.value, group.mode, options)], options); - } - } else { - // Other kinds of spaces are of arbitrary width. We use CSS to - // generate these. - return (0, _buildCommon.makeSpan)(["mspace", _buildCommon2.default.spacingFunctions[group.value].className], [], options); - } - }; - - groupTypes.llap = function (group, options) { - var inner = (0, _buildCommon.makeSpan)(["inner"], [buildGroup(group.value.body, options)]); - var fix = (0, _buildCommon.makeSpan)(["fix"], []); - return (0, _buildCommon.makeSpan)(["mord", "llap"], [inner, fix], options); - }; - - groupTypes.rlap = function (group, options) { - var inner = (0, _buildCommon.makeSpan)(["inner"], [buildGroup(group.value.body, options)]); - var fix = (0, _buildCommon.makeSpan)(["fix"], []); - return (0, _buildCommon.makeSpan)(["mord", "rlap"], [inner, fix], options); - }; - - groupTypes.op = function (group, options) { - // Operators are handled in the TeXbook pg. 443-444, rule 13(a). - var supGroup = void 0; - var subGroup = void 0; - var hasLimits = false; - if (group.type === "supsub") { - // If we have limits, supsub will pass us its group to handle. Pull - // out the superscript and subscript and set the group to the op in - // its base. - supGroup = group.value.sup; - subGroup = group.value.sub; - group = group.value.base; - hasLimits = true; - } - - var style = options.style; - - // Most operators have a large successor symbol, but these don't. - var noSuccessor = ["\\smallint"]; - - var large = false; - if (style.size === _Style2.default.DISPLAY.size && group.value.symbol && !_utils2.default.contains(noSuccessor, group.value.body)) { - - // Most symbol operators get larger in displaystyle (rule 13) - large = true; - } - - var base = void 0; - if (group.value.symbol) { - // If this is a symbol, create the symbol. - var fontName = large ? "Size2-Regular" : "Size1-Regular"; - base = _buildCommon2.default.makeSymbol(group.value.body, fontName, "math", options, ["mop", "op-symbol", large ? "large-op" : "small-op"]); - } else if (group.value.value) { - // If this is a list, compose that list. - var inner = buildExpression(group.value.value, options, true); - if (inner.length === 1 && inner[0] instanceof _domTree2.default.symbolNode) { - base = inner[0]; - base.classes[0] = "mop"; // replace old mclass - } else { - base = (0, _buildCommon.makeSpan)(["mop"], inner, options); - } - } else { - // Otherwise, this is a text operator. Build the text from the - // operator's name. - // TODO(emily): Add a space in the middle of some of these - // operators, like \limsup - var output = []; - for (var i = 1; i < group.value.body.length; i++) { - output.push(_buildCommon2.default.mathsym(group.value.body[i], group.mode)); - } - base = (0, _buildCommon.makeSpan)(["mop"], output, options); - } - - // If content of op is a single symbol, shift it vertically. - var baseShift = 0; - var slant = 0; - if (base instanceof _domTree2.default.symbolNode) { - // Shift the symbol so its center lies on the axis (rule 13). It - // appears that our fonts have the centers of the symbols already - // almost on the axis, so these numbers are very small. Note we - // don't actually apply this here, but instead it is used either in - // the vlist creation or separately when there are no limits. - baseShift = (base.height - base.depth) / 2 - options.fontMetrics().axisHeight; - - // The slant of the symbol is just its italic correction. - slant = base.italic; - } - - if (hasLimits) { - // IE 8 clips \int if it is in a display: inline-block. We wrap it - // in a new span so it is an inline, and works. - base = (0, _buildCommon.makeSpan)([], [base]); - - var supm = void 0; - var supKern = void 0; - var subm = void 0; - var subKern = void 0; - var newOptions = void 0; - // We manually have to handle the superscripts and subscripts. This, - // aside from the kern calculations, is copied from supsub. - if (supGroup) { - newOptions = options.havingStyle(style.sup()); - supm = buildGroup(supGroup, newOptions, options); - - supKern = Math.max(options.fontMetrics().bigOpSpacing1, options.fontMetrics().bigOpSpacing3 - supm.depth); - } - - if (subGroup) { - newOptions = options.havingStyle(style.sub()); - subm = buildGroup(subGroup, newOptions, options); - - subKern = Math.max(options.fontMetrics().bigOpSpacing2, options.fontMetrics().bigOpSpacing4 - subm.height); - } - - // Build the final group as a vlist of the possible subscript, base, - // and possible superscript. - var finalGroup = void 0; - var top = void 0; - var bottom = void 0; - if (!supGroup) { - top = base.height - baseShift; - - // Shift the limits by the slant of the symbol. Note - // that we are supposed to shift the limits by 1/2 of the slant, - // but since we are centering the limits adding a full slant of - // margin will shift by 1/2 that. - finalGroup = _buildCommon2.default.makeVList([{ type: "kern", size: options.fontMetrics().bigOpSpacing5 }, { type: "elem", elem: subm, marginLeft: -slant + "em" }, { type: "kern", size: subKern }, { type: "elem", elem: base }], "top", top, options); - } else if (!subGroup) { - bottom = base.depth + baseShift; - - finalGroup = _buildCommon2.default.makeVList([{ type: "elem", elem: base }, { type: "kern", size: supKern }, { type: "elem", elem: supm, marginLeft: slant + "em" }, { type: "kern", size: options.fontMetrics().bigOpSpacing5 }], "bottom", bottom, options); - } else if (!supGroup && !subGroup) { - // This case probably shouldn't occur (this would mean the - // supsub was sending us a group with no superscript or - // subscript) but be safe. - return base; - } else { - bottom = options.fontMetrics().bigOpSpacing5 + subm.height + subm.depth + subKern + base.depth + baseShift; - - finalGroup = _buildCommon2.default.makeVList([{ type: "kern", size: options.fontMetrics().bigOpSpacing5 }, { type: "elem", elem: subm, marginLeft: -slant + "em" }, { type: "kern", size: subKern }, { type: "elem", elem: base }, { type: "kern", size: supKern }, { type: "elem", elem: supm, marginLeft: slant + "em" }, { type: "kern", size: options.fontMetrics().bigOpSpacing5 }], "bottom", bottom, options); - } - - return (0, _buildCommon.makeSpan)(["mop", "op-limits"], [finalGroup], options); - } else { - if (baseShift) { - base.style.position = "relative"; - base.style.top = baseShift + "em"; - } - - return base; - } - }; - - groupTypes.mod = function (group, options) { - var inner = []; - - if (group.value.modType === "bmod") { - // “\nonscript\mskip-\medmuskip\mkern5mu” - if (!options.style.isTight()) { - inner.push((0, _buildCommon.makeSpan)(["mspace", "negativemediumspace"], [], options)); - } - inner.push((0, _buildCommon.makeSpan)(["mspace", "thickspace"], [], options)); - } else if (options.style.size === _Style2.default.DISPLAY.size) { - inner.push((0, _buildCommon.makeSpan)(["mspace", "quad"], [], options)); - } else if (group.value.modType === "mod") { - inner.push((0, _buildCommon.makeSpan)(["mspace", "twelvemuspace"], [], options)); - } else { - inner.push((0, _buildCommon.makeSpan)(["mspace", "eightmuspace"], [], options)); - } - - if (group.value.modType === "pod" || group.value.modType === "pmod") { - inner.push(_buildCommon2.default.mathsym("(", group.mode)); - } - - if (group.value.modType !== "pod") { - var modInner = [_buildCommon2.default.mathsym("m", group.mode), _buildCommon2.default.mathsym("o", group.mode), _buildCommon2.default.mathsym("d", group.mode)]; - if (group.value.modType === "bmod") { - inner.push((0, _buildCommon.makeSpan)(["mbin"], modInner, options)); - // “\mkern5mu\nonscript\mskip-\medmuskip” - inner.push((0, _buildCommon.makeSpan)(["mspace", "thickspace"], [], options)); - if (!options.style.isTight()) { - inner.push((0, _buildCommon.makeSpan)(["mspace", "negativemediumspace"], [], options)); - } - } else { - Array.prototype.push.apply(inner, modInner); - inner.push((0, _buildCommon.makeSpan)(["mspace", "sixmuspace"], [], options)); - } - } - - if (group.value.value) { - Array.prototype.push.apply(inner, buildExpression(group.value.value, options, false)); - } - - if (group.value.modType === "pod" || group.value.modType === "pmod") { - inner.push(_buildCommon2.default.mathsym(")", group.mode)); - } - - return _buildCommon2.default.makeFragment(inner); - }; - - groupTypes.katex = function (group, options) { - // The KaTeX logo. The offsets for the K and a were chosen to look - // good, but the offsets for the T, E, and X were taken from the - // definition of \TeX in TeX (see TeXbook pg. 356) - var k = (0, _buildCommon.makeSpan)(["k"], [_buildCommon2.default.mathsym("K", group.mode)], options); - var a = (0, _buildCommon.makeSpan)(["a"], [_buildCommon2.default.mathsym("A", group.mode)], options); - - a.height = (a.height + 0.2) * 0.75; - a.depth = (a.height - 0.2) * 0.75; - - var t = (0, _buildCommon.makeSpan)(["t"], [_buildCommon2.default.mathsym("T", group.mode)], options); - var e = (0, _buildCommon.makeSpan)(["e"], [_buildCommon2.default.mathsym("E", group.mode)], options); - - e.height = e.height - 0.2155; - e.depth = e.depth + 0.2155; - - var x = (0, _buildCommon.makeSpan)(["x"], [_buildCommon2.default.mathsym("X", group.mode)], options); - - return (0, _buildCommon.makeSpan)(["mord", "katex-logo"], [k, a, t, e, x], options); - }; - - var makeLineSpan = function makeLineSpan(className, options, thickness) { - var line = (0, _buildCommon.makeSpan)([className], [], options); - line.height = thickness || options.fontMetrics().defaultRuleThickness; - line.style.borderBottomWidth = line.height + "em"; - line.maxFontSize = 1.0; - return line; - }; - - groupTypes.overline = function (group, options) { - // Overlines are handled in the TeXbook pg 443, Rule 9. - - // Build the inner group in the cramped style. - var innerGroup = buildGroup(group.value.body, options.havingCrampedStyle()); - - // Create the line above the body - var line = makeLineSpan("overline-line", options); - - // Generate the vlist, with the appropriate kerns - var vlist = _buildCommon2.default.makeVList([{ type: "elem", elem: innerGroup }, { type: "kern", size: 3 * line.height }, { type: "elem", elem: line }, { type: "kern", size: line.height }], "firstBaseline", null, options); - - return (0, _buildCommon.makeSpan)(["mord", "overline"], [vlist], options); - }; - - groupTypes.underline = function (group, options) { - // Underlines are handled in the TeXbook pg 443, Rule 10. - // Build the inner group. - var innerGroup = buildGroup(group.value.body, options); - - // Create the line above the body - var line = makeLineSpan("underline-line", options); - - // Generate the vlist, with the appropriate kerns - var vlist = _buildCommon2.default.makeVList([{ type: "kern", size: line.height }, { type: "elem", elem: line }, { type: "kern", size: 3 * line.height }, { type: "elem", elem: innerGroup }], "top", innerGroup.height, options); - - return (0, _buildCommon.makeSpan)(["mord", "underline"], [vlist], options); - }; - - groupTypes.sqrt = function (group, options) { - // Square roots are handled in the TeXbook pg. 443, Rule 11. - - // First, we do the same steps as in overline to build the inner group - // and line - var inner = buildGroup(group.value.body, options.havingCrampedStyle()); - - // Some groups can return document fragments. Handle those by wrapping - // them in a span. - if (inner instanceof _domTree2.default.documentFragment) { - inner = (0, _buildCommon.makeSpan)([], [inner], options); - } - - // Calculate the minimum size for the \surd delimiter - var metrics = options.fontMetrics(); - var theta = metrics.defaultRuleThickness; - - var phi = theta; - if (options.style.id < _Style2.default.TEXT.id) { - phi = options.fontMetrics().xHeight; - } - - // Calculate the clearance between the body and line - var lineClearance = theta + phi / 4; - - var minDelimiterHeight = (inner.height + inner.depth + lineClearance + theta) * options.sizeMultiplier; - - // Create a sqrt SVG of the required minimum size - var img = _delimiter2.default.customSizedDelim("\\surd", minDelimiterHeight, false, options, group.mode); - - // Calculate the actual line width. - // This actually should depend on the chosen font -- e.g. \boldmath - // should use the thicker surd symbols from e.g. KaTeX_Main-Bold, and - // have thicker rules. - var ruleWidth = options.fontMetrics().sqrtRuleThickness * img.sizeMultiplier; - - var delimDepth = img.height - ruleWidth; - - // Adjust the clearance based on the delimiter size - if (delimDepth > inner.height + inner.depth + lineClearance) { - lineClearance = (lineClearance + delimDepth - inner.height - inner.depth) / 2; - } - - // Shift the sqrt image - var imgShift = img.height - inner.height - lineClearance - ruleWidth; - - // We add a special case here, because even when `inner` is empty, we - // still get a line. So, we use a simple heuristic to decide if we - // should omit the body entirely. (note this doesn't work for something - // like `\sqrt{\rlap{x}}`, but if someone is doing that they deserve for - // it not to work. - var body = void 0; - if (inner.height === 0 && inner.depth === 0) { - body = (0, _buildCommon.makeSpan)(); - } else { - inner.style.paddingLeft = img.surdWidth + "em"; - - // Overlay the image and the argument. - body = _buildCommon2.default.makeVList([{ type: "elem", elem: inner }, { type: "kern", size: -(inner.height + imgShift) }, { type: "elem", elem: img }, { type: "kern", size: ruleWidth }], "firstBaseline", null, options); - body.children[0].children[0].classes.push("svg-align"); - } - - if (!group.value.index) { - return (0, _buildCommon.makeSpan)(["mord", "sqrt"], [body], options); - } else { - // Handle the optional root index - - // The index is always in scriptscript style - var newOptions = options.havingStyle(_Style2.default.SCRIPTSCRIPT); - var rootm = buildGroup(group.value.index, newOptions, options); - - // The amount the index is shifted by. This is taken from the TeX - // source, in the definition of `\r@@t`. - var toShift = 0.6 * (body.height - body.depth); - - // Build a VList with the superscript shifted up correctly - var rootVList = _buildCommon2.default.makeVList([{ type: "elem", elem: rootm }], "shift", -toShift, options); - // Add a class surrounding it so we can add on the appropriate - // kerning - var rootVListWrap = (0, _buildCommon.makeSpan)(["root"], [rootVList]); - - return (0, _buildCommon.makeSpan)(["mord", "sqrt"], [rootVListWrap, body], options); - } - }; - - function sizingGroup(value, options, baseOptions) { - var inner = buildExpression(value, options, false); - var multiplier = options.sizeMultiplier / baseOptions.sizeMultiplier; - - // Add size-resetting classes to the inner list and set maxFontSize - // manually. Handle nested size changes. - for (var i = 0; i < inner.length; i++) { - var pos = _utils2.default.indexOf(inner[i].classes, "sizing"); - if (pos < 0) { - Array.prototype.push.apply(inner[i].classes, options.sizingClasses(baseOptions)); - } else if (inner[i].classes[pos + 1] === "reset-size" + options.size) { - // This is a nested size change: e.g., inner[i] is the "b" in - // `\Huge a \small b`. Override the old size (the `reset-` class) - // but not the new size. - inner[i].classes[pos + 1] = "reset-size" + baseOptions.size; - } - - inner[i].height *= multiplier; - inner[i].depth *= multiplier; - } - - return _buildCommon2.default.makeFragment(inner); - } - - groupTypes.sizing = function (group, options) { - // Handle sizing operators like \Huge. Real TeX doesn't actually allow - // these functions inside of math expressions, so we do some special - // handling. - var newOptions = options.havingSize(group.value.size); - return sizingGroup(group.value.value, newOptions, options); - }; - - groupTypes.styling = function (group, options) { - // Style changes are handled in the TeXbook on pg. 442, Rule 3. - - // Figure out what style we're changing to. - var styleMap = { - "display": _Style2.default.DISPLAY, - "text": _Style2.default.TEXT, - "script": _Style2.default.SCRIPT, - "scriptscript": _Style2.default.SCRIPTSCRIPT - }; - - var newStyle = styleMap[group.value.style]; - var newOptions = options.havingStyle(newStyle); - return sizingGroup(group.value.value, newOptions, options); - }; - - groupTypes.font = function (group, options) { - var font = group.value.font; - return buildGroup(group.value.body, options.withFont(font)); - }; - - groupTypes.delimsizing = function (group, options) { - var delim = group.value.value; - - if (delim === ".") { - // Empty delimiters still count as elements, even though they don't - // show anything. - return (0, _buildCommon.makeSpan)([group.value.mclass]); - } - - // Use delimiter.sizedDelim to generate the delimiter. - return _delimiter2.default.sizedDelim(delim, group.value.size, options, group.mode, [group.value.mclass]); - }; - - groupTypes.leftright = function (group, options) { - // Build the inner expression - var inner = buildExpression(group.value.body, options, true); - - var innerHeight = 0; - var innerDepth = 0; - var hadMiddle = false; - - // Calculate its height and depth - for (var i = 0; i < inner.length; i++) { - if (inner[i].isMiddle) { - hadMiddle = true; - } else { - innerHeight = Math.max(inner[i].height, innerHeight); - innerDepth = Math.max(inner[i].depth, innerDepth); - } - } - - // The size of delimiters is the same, regardless of what style we are - // in. Thus, to correctly calculate the size of delimiter we need around - // a group, we scale down the inner size based on the size. - innerHeight *= options.sizeMultiplier; - innerDepth *= options.sizeMultiplier; - - var leftDelim = void 0; - if (group.value.left === ".") { - // Empty delimiters in \left and \right make null delimiter spaces. - leftDelim = makeNullDelimiter(options, ["mopen"]); - } else { - // Otherwise, use leftRightDelim to generate the correct sized - // delimiter. - leftDelim = _delimiter2.default.leftRightDelim(group.value.left, innerHeight, innerDepth, options, group.mode, ["mopen"]); - } - // Add it to the beginning of the expression - inner.unshift(leftDelim); - - // Handle middle delimiters - if (hadMiddle) { - for (var _i4 = 1; _i4 < inner.length; _i4++) { - var middleDelim = inner[_i4]; - if (middleDelim.isMiddle) { - // Apply the options that were active when \middle was called - inner[_i4] = _delimiter2.default.leftRightDelim(middleDelim.isMiddle.value, innerHeight, innerDepth, middleDelim.isMiddle.options, group.mode, []); - // Add back spaces shifted into the delimiter - var spaces = spliceSpaces(middleDelim.children, 0); - if (spaces) { - _buildCommon2.default.prependChildren(inner[_i4], spaces); - } - } - } - } - - var rightDelim = void 0; - // Same for the right delimiter - if (group.value.right === ".") { - rightDelim = makeNullDelimiter(options, ["mclose"]); - } else { - rightDelim = _delimiter2.default.leftRightDelim(group.value.right, innerHeight, innerDepth, options, group.mode, ["mclose"]); - } - // Add it to the end of the expression. - inner.push(rightDelim); - - return (0, _buildCommon.makeSpan)(["minner"], inner, options); - }; - - groupTypes.middle = function (group, options) { - var middleDelim = void 0; - if (group.value.value === ".") { - middleDelim = makeNullDelimiter(options, []); - } else { - middleDelim = _delimiter2.default.sizedDelim(group.value.value, 1, options, group.mode, []); - middleDelim.isMiddle = { value: group.value.value, options: options }; - } - return middleDelim; - }; - - groupTypes.rule = function (group, options) { - // Make an empty span for the rule - var rule = (0, _buildCommon.makeSpan)(["mord", "rule"], [], options); - - // Calculate the shift, width, and height of the rule, and account for units - var shift = 0; - if (group.value.shift) { - shift = _units2.default.calculateSize(group.value.shift, options); - } - - var width = _units2.default.calculateSize(group.value.width, options); - var height = _units2.default.calculateSize(group.value.height, options); - - // Style the rule to the right size - rule.style.borderRightWidth = width + "em"; - rule.style.borderTopWidth = height + "em"; - rule.style.bottom = shift + "em"; - - // Record the height and width - rule.width = width; - rule.height = height + shift; - rule.depth = -shift; - // Font size is the number large enough that the browser will - // reserve at least `absHeight` space above the baseline. - // The 1.125 factor was empirically determined - rule.maxFontSize = height * 1.125 * options.sizeMultiplier; - - return rule; - }; - - groupTypes.kern = function (group, options) { - // Make an empty span for the rule - var rule = (0, _buildCommon.makeSpan)(["mord", "rule"], [], options); - - if (group.value.dimension) { - var dimension = _units2.default.calculateSize(group.value.dimension, options); - rule.style.marginLeft = dimension + "em"; - } - - return rule; - }; - - groupTypes.accent = function (group, options) { - // Accents are handled in the TeXbook pg. 443, rule 12. - var base = group.value.base; - - var supsubGroup = void 0; - if (group.type === "supsub") { - // If our base is a character box, and we have superscripts and - // subscripts, the supsub will defer to us. In particular, we want - // to attach the superscripts and subscripts to the inner body (so - // that the position of the superscripts and subscripts won't be - // affected by the height of the accent). We accomplish this by - // sticking the base of the accent into the base of the supsub, and - // rendering that, while keeping track of where the accent is. - - // The supsub group is the group that was passed in - var supsub = group; - // The real accent group is the base of the supsub group - group = supsub.value.base; - // The character box is the base of the accent group - base = group.value.base; - // Stick the character box into the base of the supsub group - supsub.value.base = base; - - // Rerender the supsub group with its new base, and store that - // result. - supsubGroup = buildGroup(supsub, options); - } - - // Build the base group - var body = buildGroup(base, options.havingCrampedStyle()); - - // Does the accent need to shift for the skew of a character? - var mustShift = group.value.isShifty && isCharacterBox(base); - - // Calculate the skew of the accent. This is based on the line "If the - // nucleus is not a single character, let s = 0; otherwise set s to the - // kern amount for the nucleus followed by the \skewchar of its font." - // Note that our skew metrics are just the kern between each character - // and the skewchar. - var skew = 0; - if (mustShift) { - // If the base is a character box, then we want the skew of the - // innermost character. To do that, we find the innermost character: - var baseChar = getBaseElem(base); - // Then, we render its group to get the symbol inside it - var baseGroup = buildGroup(baseChar, options.havingCrampedStyle()); - // Finally, we pull the skew off of the symbol. - skew = baseGroup.skew; - // Note that we now throw away baseGroup, because the layers we - // removed with getBaseElem might contain things like \color which - // we can't get rid of. - // TODO(emily): Find a better way to get the skew - } - - // calculate the amount of space between the body and the accent - var clearance = Math.min(body.height, options.fontMetrics().xHeight); - - // Build the accent - var accentBody = void 0; - if (!group.value.isStretchy) { - var accent = _buildCommon2.default.makeSymbol(group.value.label, "Main-Regular", group.mode, options); - // Remove the italic correction of the accent, because it only serves to - // shift the accent over to a place we don't want. - accent.italic = 0; - - // The \vec character that the fonts use is a combining character, and - // thus shows up much too far to the left. To account for this, we add a - // specific class which shifts the accent over to where we want it. - // TODO(emily): Fix this in a better way, like by changing the font - // Similarly, text accent \H is a combining character and - // requires a different adjustment. - var accentClass = null; - if (group.value.label === "\\vec") { - accentClass = "accent-vec"; - } else if (group.value.label === '\\H') { - accentClass = "accent-hungarian"; - } - - accentBody = (0, _buildCommon.makeSpan)([], [accent]); - accentBody = (0, _buildCommon.makeSpan)(["accent-body", accentClass], [accentBody]); - - // Shift the accent over by the skew. Note we shift by twice the skew - // because we are centering the accent, so by adding 2*skew to the left, - // we shift it to the right by 1*skew. - accentBody.style.marginLeft = 2 * skew + "em"; - - accentBody = _buildCommon2.default.makeVList([{ type: "elem", elem: body }, { type: "kern", size: -clearance }, { type: "elem", elem: accentBody }], "firstBaseline", null, options); - } else { - accentBody = _stretchy2.default.svgSpan(group, options); - - accentBody = _buildCommon2.default.makeVList([{ type: "elem", elem: body }, { type: "elem", elem: accentBody }], "firstBaseline", null, options); - - var styleSpan = accentBody.children[0].children[0].children[1]; - styleSpan.classes.push("svg-align"); // text-align: left; - if (skew > 0) { - // Shorten the accent and nudge it to the right. - styleSpan.style.width = "calc(100% - " + 2 * skew + "em)"; - styleSpan.style.marginLeft = 2 * skew + "em"; - } - } - - var accentWrap = (0, _buildCommon.makeSpan)(["mord", "accent"], [accentBody], options); - - if (supsubGroup) { - // Here, we replace the "base" child of the supsub with our newly - // generated accent. - supsubGroup.children[0] = accentWrap; - - // Since we don't rerun the height calculation after replacing the - // accent, we manually recalculate height. - supsubGroup.height = Math.max(accentWrap.height, supsubGroup.height); - - // Accents should always be ords, even when their innards are not. - supsubGroup.classes[0] = "mord"; - - return supsubGroup; - } else { - return accentWrap; - } - }; - - groupTypes.horizBrace = function (group, options) { - var style = options.style; - - var hasSupSub = group.type === "supsub"; - var supSubGroup = void 0; - var newOptions = void 0; - if (hasSupSub) { - // Ref: LaTeX source2e: }}}}\limits} - // i.e. LaTeX treats the brace similar to an op and passes it - // with \limits, so we need to assign supsub style. - if (group.value.sup) { - newOptions = options.havingStyle(style.sup()); - supSubGroup = buildGroup(group.value.sup, newOptions, options); - } else { - newOptions = options.havingStyle(style.sub()); - supSubGroup = buildGroup(group.value.sub, newOptions, options); - } - group = group.value.base; - } - - // Build the base group - var body = buildGroup(group.value.base, options.havingBaseStyle(_Style2.default.DISPLAY)); - - // Create the stretchy element - var braceBody = _stretchy2.default.svgSpan(group, options); - - // Generate the vlist, with the appropriate kerns ┏━━━━━━━━┓ - // This first vlist contains the subject matter and the brace: equation - var vlist = void 0; - if (group.value.isOver) { - vlist = _buildCommon2.default.makeVList([{ type: "elem", elem: body }, { type: "kern", size: 0.1 }, { type: "elem", elem: braceBody }], "firstBaseline", null, options); - vlist.children[0].children[0].children[1].classes.push("svg-align"); - } else { - vlist = _buildCommon2.default.makeVList([{ type: "elem", elem: braceBody }, { type: "kern", size: 0.1 }, { type: "elem", elem: body }], "bottom", body.depth + 0.1 + braceBody.height, options); - vlist.children[0].children[0].children[0].classes.push("svg-align"); - } - - if (hasSupSub) { - // In order to write the supsub, wrap the first vlist in another vlist: - // They can't all go in the same vlist, because the note might be wider - // than the equation. We want the equation to control the brace width. - - // note long note long note - // ┏━━━━━━━━┓ or ┏━━━┓ not ┏━━━━━━━━━┓ - // equation eqn eqn - - var vSpan = (0, _buildCommon.makeSpan)(["mord", group.value.isOver ? "mover" : "munder"], [vlist], options); - - if (group.value.isOver) { - vlist = _buildCommon2.default.makeVList([{ type: "elem", elem: vSpan }, { type: "kern", size: 0.2 }, { type: "elem", elem: supSubGroup }], "firstBaseline", null, options); - } else { - vlist = _buildCommon2.default.makeVList([{ type: "elem", elem: supSubGroup }, { type: "kern", size: 0.2 }, { type: "elem", elem: vSpan }], "bottom", vSpan.depth + 0.2 + supSubGroup.height, options); - } - } - - return (0, _buildCommon.makeSpan)(["mord", group.value.isOver ? "mover" : "munder"], [vlist], options); - }; - - groupTypes.accentUnder = function (group, options) { - // Treat under accents much like underlines. - var innerGroup = buildGroup(group.value.body, options); - - var accentBody = _stretchy2.default.svgSpan(group, options); - var kern = /tilde/.test(group.value.label) ? 0.12 : 0; - - // Generate the vlist, with the appropriate kerns - var vlist = _buildCommon2.default.makeVList([{ type: "elem", elem: accentBody }, { type: "kern", size: kern }, { type: "elem", elem: innerGroup }], "bottom", accentBody.height + kern, options); - - vlist.children[0].children[0].children[0].classes.push("svg-align"); - - return (0, _buildCommon.makeSpan)(["mord", "accentunder"], [vlist], options); - }; - - groupTypes.enclose = function (group, options) { - // \cancel, \bcancel, \xcancel, \sout, \fbox - var inner = buildGroup(group.value.body, options); - - var label = group.value.label.substr(1); - var scale = options.sizeMultiplier; - var img = void 0; - var pad = 0; - var imgShift = 0; - - if (label === "sout") { - img = (0, _buildCommon.makeSpan)(["stretchy", "sout"]); - img.height = options.fontMetrics().defaultRuleThickness / scale; - imgShift = -0.5 * options.fontMetrics().xHeight; - } else { - // Add horizontal padding - inner.classes.push(label === "fbox" ? "boxpad" : "cancel-pad"); - - // Add vertical padding - var isCharBox = isCharacterBox(group.value.body); - // ref: LaTeX source2e: \fboxsep = 3pt; \fboxrule = .4pt - // ref: cancel package: \advance\totalheight2\p@ % "+2" - pad = label === "fbox" ? 0.34 : isCharBox ? 0.2 : 0; - imgShift = inner.depth + pad; - - img = _stretchy2.default.encloseSpan(inner, label, pad, options); - } - - var vlist = _buildCommon2.default.makeVList([{ type: "elem", elem: inner, shift: 0 }, { type: "elem", elem: img, shift: imgShift }], "individualShift", null, options); - - if (label !== "fbox") { - vlist.children[0].children[0].children[1].classes.push("svg-align"); - } - - if (/cancel/.test(label)) { - // cancel does not create horiz space for its line extension. - // That is, not when adjacent to a mord. - return (0, _buildCommon.makeSpan)(["mord", "cancel-lap"], [vlist], options); - } else { - return (0, _buildCommon.makeSpan)(["mord"], [vlist], options); - } - }; - - groupTypes.xArrow = function (group, options) { - var style = options.style; - - // Build the argument groups in the appropriate style. - // Ref: amsmath.dtx: \hbox{$\scriptstyle\mkern#3mu{#6}\mkern#4mu$}% - - var newOptions = options.havingStyle(style.sup()); - var upperGroup = buildGroup(group.value.body, newOptions, options); - upperGroup.classes.push("x-arrow-pad"); - - var lowerGroup = void 0; - if (group.value.below) { - // Build the lower group - newOptions = options.havingStyle(style.sub()); - lowerGroup = buildGroup(group.value.below, newOptions, options); - lowerGroup.classes.push("x-arrow-pad"); - } - - var arrowBody = _stretchy2.default.svgSpan(group, options); - - var arrowShift = -options.fontMetrics().axisHeight + arrowBody.depth; - var upperShift = -options.fontMetrics().axisHeight - arrowBody.height - 0.111; // 2 mu. Ref: amsmath.dtx: #7\if0#2\else\mkern#2mu\fi - - // Generate the vlist - var vlist = void 0; - if (group.value.below) { - var lowerShift = -options.fontMetrics().axisHeight + lowerGroup.height + arrowBody.height + 0.111; - vlist = _buildCommon2.default.makeVList([{ type: "elem", elem: upperGroup, shift: upperShift }, { type: "elem", elem: arrowBody, shift: arrowShift }, { type: "elem", elem: lowerGroup, shift: lowerShift }], "individualShift", null, options); - } else { - vlist = _buildCommon2.default.makeVList([{ type: "elem", elem: upperGroup, shift: upperShift }, { type: "elem", elem: arrowBody, shift: arrowShift }], "individualShift", null, options); - } - - vlist.children[0].children[0].children[1].classes.push("svg-align"); - - return (0, _buildCommon.makeSpan)(["mrel", "x-arrow"], [vlist], options); - }; - - groupTypes.phantom = function (group, options) { - var elements = buildExpression(group.value.value, options.withPhantom(), false); - - // \phantom isn't supposed to affect the elements it contains. - // See "color" for more details. - return new _buildCommon2.default.makeFragment(elements); - }; - - groupTypes.mclass = function (group, options) { - var elements = buildExpression(group.value.value, options, true); - - return (0, _buildCommon.makeSpan)([group.value.mclass], elements, options); - }; - - /** - * buildGroup is the function that takes a group and calls the correct groupType - * function for it. It also handles the interaction of size and style changes - * between parents and children. - */ - var buildGroup = function buildGroup(group, options, baseOptions) { - if (!group) { - return (0, _buildCommon.makeSpan)(); - } - - if (groupTypes[group.type]) { - // Call the groupTypes function - var groupNode = groupTypes[group.type](group, options); - - // If the size changed between the parent and the current group, account - // for that size difference. - if (baseOptions && options.size !== baseOptions.size) { - groupNode = (0, _buildCommon.makeSpan)(options.sizingClasses(baseOptions), [groupNode], options); - - var multiplier = options.sizeMultiplier / baseOptions.sizeMultiplier; - - groupNode.height *= multiplier; - groupNode.depth *= multiplier; - } - - return groupNode; - } else { - throw new _ParseError2.default("Got group of unknown type: '" + group.type + "'"); - } - }; - - /** - * Take an entire parse tree, and build it into an appropriate set of HTML - * nodes. - */ - var buildHTML = function buildHTML(tree, options) { - // buildExpression is destructive, so we need to make a clone - // of the incoming tree so that it isn't accidentally changed - tree = JSON.parse((0, _stringify2.default)(tree)); - - // Build the expression contained in the tree - var expression = buildExpression(tree, options, true); - var body = (0, _buildCommon.makeSpan)(["base"], expression, options); - - // Add struts, which ensure that the top of the HTML element falls at the - // height of the expression, and the bottom of the HTML element falls at the - // depth of the expression. - var topStrut = (0, _buildCommon.makeSpan)(["strut"]); - var bottomStrut = (0, _buildCommon.makeSpan)(["strut", "bottom"]); - - topStrut.style.height = body.height + "em"; - bottomStrut.style.height = body.height + body.depth + "em"; - // We'd like to use `vertical-align: top` but in IE 9 this lowers the - // baseline of the box to the bottom of this strut (instead staying in the - // normal place) so we use an absolute value for vertical-align instead - bottomStrut.style.verticalAlign = -body.depth + "em"; - - // Wrap the struts and body together - var htmlNode = (0, _buildCommon.makeSpan)(["katex-html"], [topStrut, bottomStrut, body]); - - htmlNode.setAttribute("aria-hidden", "true"); - - return htmlNode; - }; - - module.exports = buildHTML; - - },{"./ParseError":29,"./Style":33,"./buildCommon":34,"./delimiter":38,"./domTree":39,"./stretchy":47,"./units":50,"./utils":51,"babel-runtime/core-js/json/stringify":2}],36:[function(require,module,exports){ - - var _buildCommon = require("./buildCommon"); - - var _buildCommon2 = _interopRequireDefault(_buildCommon); - - var _fontMetrics = require("./fontMetrics"); - - var _fontMetrics2 = _interopRequireDefault(_fontMetrics); - - var _mathMLTree = require("./mathMLTree"); - - var _mathMLTree2 = _interopRequireDefault(_mathMLTree); - - var _ParseError = require("./ParseError"); - - var _ParseError2 = _interopRequireDefault(_ParseError); - - var _Style = require("./Style"); - - var _Style2 = _interopRequireDefault(_Style); - - var _symbols = require("./symbols"); - - var _symbols2 = _interopRequireDefault(_symbols); - - var _utils = require("./utils"); - - var _utils2 = _interopRequireDefault(_utils); - - var _stretchy = require("./stretchy"); - - var _stretchy2 = _interopRequireDefault(_stretchy); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /** - * Takes a symbol and converts it into a MathML text node after performing - * optional replacement from symbols.js. - */ - /** - * This file converts a parse tree into a cooresponding MathML tree. The main - * entry point is the `buildMathML` function, which takes a parse tree from the - * parser. - */ - - var makeText = function makeText(text, mode) { - if (_symbols2.default[mode][text] && _symbols2.default[mode][text].replace) { - text = _symbols2.default[mode][text].replace; - } - - return new _mathMLTree2.default.TextNode(text); - }; - - /** - * Returns the math variant as a string or null if none is required. - */ - var getVariant = function getVariant(group, options) { - var font = options.font; - if (!font) { - return null; - } - - var mode = group.mode; - if (font === "mathit") { - return "italic"; - } - - var value = group.value; - if (_utils2.default.contains(["\\imath", "\\jmath"], value)) { - return null; - } - - if (_symbols2.default[mode][value] && _symbols2.default[mode][value].replace) { - value = _symbols2.default[mode][value].replace; - } - - var fontName = _buildCommon.fontMap[font].fontName; - if (_fontMetrics2.default.getCharacterMetrics(value, fontName)) { - return _buildCommon.fontMap[options.font].variant; - } - - return null; - }; - - /** - * Functions for handling the different types of groups found in the parse - * tree. Each function should take a parse group and return a MathML node. - */ - var groupTypes = {}; - - var defaultVariant = { - "mi": "italic", - "mn": "normal", - "mtext": "normal" - }; - - groupTypes.mathord = function (group, options) { - var node = new _mathMLTree2.default.MathNode("mi", [makeText(group.value, group.mode)]); - - var variant = getVariant(group, options) || "italic"; - if (variant !== defaultVariant[node.type]) { - node.setAttribute("mathvariant", variant); - } - return node; - }; - - groupTypes.textord = function (group, options) { - var text = makeText(group.value, group.mode); - - var variant = getVariant(group, options) || "normal"; - - var node = void 0; - if (group.mode === 'text') { - node = new _mathMLTree2.default.MathNode("mtext", [text]); - } else if (/[0-9]/.test(group.value)) { - // TODO(kevinb) merge adjacent nodes - // do it as a post processing step - node = new _mathMLTree2.default.MathNode("mn", [text]); - } else if (group.value === "\\prime") { - node = new _mathMLTree2.default.MathNode("mo", [text]); - } else { - node = new _mathMLTree2.default.MathNode("mi", [text]); - } - if (variant !== defaultVariant[node.type]) { - node.setAttribute("mathvariant", variant); - } - - return node; - }; - - groupTypes.bin = function (group) { - var node = new _mathMLTree2.default.MathNode("mo", [makeText(group.value, group.mode)]); - - return node; - }; - - groupTypes.rel = function (group) { - var node = new _mathMLTree2.default.MathNode("mo", [makeText(group.value, group.mode)]); - - return node; - }; - - groupTypes.open = function (group) { - var node = new _mathMLTree2.default.MathNode("mo", [makeText(group.value, group.mode)]); - - return node; - }; - - groupTypes.close = function (group) { - var node = new _mathMLTree2.default.MathNode("mo", [makeText(group.value, group.mode)]); - - return node; - }; - - groupTypes.inner = function (group) { - var node = new _mathMLTree2.default.MathNode("mo", [makeText(group.value, group.mode)]); - - return node; - }; - - groupTypes.punct = function (group) { - var node = new _mathMLTree2.default.MathNode("mo", [makeText(group.value, group.mode)]); - - node.setAttribute("separator", "true"); - - return node; - }; - - groupTypes.ordgroup = function (group, options) { - var inner = buildExpression(group.value, options); - - var node = new _mathMLTree2.default.MathNode("mrow", inner); - - return node; - }; - - groupTypes.text = function (group, options) { - var body = group.value.body; - - // Convert each element of the body into MathML, and combine consecutive - // outputs into a single tag. In this way, we don't - // nest non-text items (e.g., $nested-math$) within an . - var inner = []; - var currentText = null; - for (var i = 0; i < body.length; i++) { - var _group = buildGroup(body[i], options); - if (_group.type === 'mtext' && currentText != null) { - Array.prototype.push.apply(currentText.children, _group.children); - } else { - inner.push(_group); - if (_group.type === 'mtext') { - currentText = _group; - } - } - } - - // If there is a single tag in the end (presumably ), - // just return it. Otherwise, wrap them in an . - if (inner.length === 1) { - return inner[0]; - } else { - return new _mathMLTree2.default.MathNode("mrow", inner); - } - }; - - groupTypes.color = function (group, options) { - var inner = buildExpression(group.value.value, options); - - var node = new _mathMLTree2.default.MathNode("mstyle", inner); - - node.setAttribute("mathcolor", group.value.color); - - return node; - }; - - groupTypes.supsub = function (group, options) { - // Is the inner group a relevant horizonal brace? - var isBrace = false; - var isOver = void 0; - var isSup = void 0; - if (group.value.base) { - if (group.value.base.value.type === "horizBrace") { - isSup = group.value.sup ? true : false; - if (isSup === group.value.base.value.isOver) { - isBrace = true; - isOver = group.value.base.value.isOver; - } - } - } - - var removeUnnecessaryRow = true; - var children = [buildGroup(group.value.base, options, removeUnnecessaryRow)]; - - if (group.value.sub) { - children.push(buildGroup(group.value.sub, options, removeUnnecessaryRow)); - } - - if (group.value.sup) { - children.push(buildGroup(group.value.sup, options, removeUnnecessaryRow)); - } - - var nodeType = void 0; - if (isBrace) { - nodeType = isOver ? "mover" : "munder"; - } else if (!group.value.sub) { - nodeType = "msup"; - } else if (!group.value.sup) { - nodeType = "msub"; - } else { - var base = group.value.base; - if (base && base.value.limits && options.style === _Style2.default.DISPLAY) { - nodeType = "munderover"; - } else { - nodeType = "msubsup"; - } - } - - var node = new _mathMLTree2.default.MathNode(nodeType, children); - - return node; - }; - - groupTypes.genfrac = function (group, options) { - var node = new _mathMLTree2.default.MathNode("mfrac", [buildGroup(group.value.numer, options), buildGroup(group.value.denom, options)]); - - if (!group.value.hasBarLine) { - node.setAttribute("linethickness", "0px"); - } - - if (group.value.leftDelim != null || group.value.rightDelim != null) { - var withDelims = []; - - if (group.value.leftDelim != null) { - var leftOp = new _mathMLTree2.default.MathNode("mo", [new _mathMLTree2.default.TextNode(group.value.leftDelim)]); - - leftOp.setAttribute("fence", "true"); - - withDelims.push(leftOp); - } - - withDelims.push(node); - - if (group.value.rightDelim != null) { - var rightOp = new _mathMLTree2.default.MathNode("mo", [new _mathMLTree2.default.TextNode(group.value.rightDelim)]); - - rightOp.setAttribute("fence", "true"); - - withDelims.push(rightOp); - } - - var outerNode = new _mathMLTree2.default.MathNode("mrow", withDelims); - - return outerNode; - } - - return node; - }; - - groupTypes.array = function (group, options) { - return new _mathMLTree2.default.MathNode("mtable", group.value.body.map(function (row) { - return new _mathMLTree2.default.MathNode("mtr", row.map(function (cell) { - return new _mathMLTree2.default.MathNode("mtd", [buildGroup(cell, options)]); - })); - })); - }; - - groupTypes.sqrt = function (group, options) { - var node = void 0; - if (group.value.index) { - node = new _mathMLTree2.default.MathNode("mroot", [buildGroup(group.value.body, options), buildGroup(group.value.index, options)]); - } else { - node = new _mathMLTree2.default.MathNode("msqrt", [buildGroup(group.value.body, options)]); - } - - return node; - }; - - groupTypes.leftright = function (group, options) { - var inner = buildExpression(group.value.body, options); - - if (group.value.left !== ".") { - var leftNode = new _mathMLTree2.default.MathNode("mo", [makeText(group.value.left, group.mode)]); - - leftNode.setAttribute("fence", "true"); - - inner.unshift(leftNode); - } - - if (group.value.right !== ".") { - var rightNode = new _mathMLTree2.default.MathNode("mo", [makeText(group.value.right, group.mode)]); - - rightNode.setAttribute("fence", "true"); - - inner.push(rightNode); - } - - var outerNode = new _mathMLTree2.default.MathNode("mrow", inner); - - return outerNode; - }; - - groupTypes.middle = function (group, options) { - var middleNode = new _mathMLTree2.default.MathNode("mo", [makeText(group.value.middle, group.mode)]); - middleNode.setAttribute("fence", "true"); - return middleNode; - }; - - groupTypes.accent = function (group, options) { - var accentNode = void 0; - if (group.value.isStretchy) { - accentNode = _stretchy2.default.mathMLnode(group.value.label); - } else { - accentNode = new _mathMLTree2.default.MathNode("mo", [makeText(group.value.label, group.mode)]); - } - - var node = new _mathMLTree2.default.MathNode("mover", [buildGroup(group.value.base, options), accentNode]); - - node.setAttribute("accent", "true"); - - return node; - }; - - groupTypes.spacing = function (group) { - var node = void 0; - - if (group.value === "\\ " || group.value === "\\space" || group.value === " " || group.value === "~") { - node = new _mathMLTree2.default.MathNode("mtext", [new _mathMLTree2.default.TextNode("\xA0")]); - } else { - node = new _mathMLTree2.default.MathNode("mspace"); - - node.setAttribute("width", _buildCommon2.default.spacingFunctions[group.value].size); - } - - return node; - }; - - groupTypes.op = function (group, options) { - var node = void 0; - - // TODO(emily): handle big operators using the `largeop` attribute - - if (group.value.symbol) { - // This is a symbol. Just add the symbol. - node = new _mathMLTree2.default.MathNode("mo", [makeText(group.value.body, group.mode)]); - } else if (group.value.value) { - // This is an operator with children. Add them. - node = new _mathMLTree2.default.MathNode("mo", buildExpression(group.value.value, options)); - } else { - // This is a text operator. Add all of the characters from the - // operator's name. - // TODO(emily): Add a space in the middle of some of these - // operators, like \limsup. - node = new _mathMLTree2.default.MathNode("mi", [new _mathMLTree2.default.TextNode(group.value.body.slice(1))]); - } - - return node; - }; - - groupTypes.mod = function (group, options) { - var inner = []; - - if (group.value.modType === "pod" || group.value.modType === "pmod") { - inner.push(new _mathMLTree2.default.MathNode("mo", [makeText("(", group.mode)])); - } - if (group.value.modType !== "pod") { - inner.push(new _mathMLTree2.default.MathNode("mo", [makeText("mod", group.mode)])); - } - if (group.value.value) { - var space = new _mathMLTree2.default.MathNode("mspace"); - space.setAttribute("width", "0.333333em"); - inner.push(space); - inner = inner.concat(buildExpression(group.value.value, options)); - } - if (group.value.modType === "pod" || group.value.modType === "pmod") { - inner.push(new _mathMLTree2.default.MathNode("mo", [makeText(")", group.mode)])); - } - - return new _mathMLTree2.default.MathNode("mo", inner); - }; - - groupTypes.katex = function (group) { - var node = new _mathMLTree2.default.MathNode("mtext", [new _mathMLTree2.default.TextNode("KaTeX")]); - - return node; - }; - - groupTypes.font = function (group, options) { - var font = group.value.font; - return buildGroup(group.value.body, options.withFont(font)); - }; - - groupTypes.delimsizing = function (group) { - var children = []; - - if (group.value.value !== ".") { - children.push(makeText(group.value.value, group.mode)); - } - - var node = new _mathMLTree2.default.MathNode("mo", children); - - if (group.value.mclass === "mopen" || group.value.mclass === "mclose") { - // Only some of the delimsizing functions act as fences, and they - // return "mopen" or "mclose" mclass. - node.setAttribute("fence", "true"); - } else { - // Explicitly disable fencing if it's not a fence, to override the - // defaults. - node.setAttribute("fence", "false"); - } - - return node; - }; - - groupTypes.styling = function (group, options) { - // Figure out what style we're changing to. - // TODO(kevinb): dedupe this with buildHTML.js - // This will be easier of handling of styling nodes is in the same file. - var styleMap = { - "display": _Style2.default.DISPLAY, - "text": _Style2.default.TEXT, - "script": _Style2.default.SCRIPT, - "scriptscript": _Style2.default.SCRIPTSCRIPT - }; - - var newStyle = styleMap[group.value.style]; - var newOptions = options.havingStyle(newStyle); - - var inner = buildExpression(group.value.value, newOptions); - - var node = new _mathMLTree2.default.MathNode("mstyle", inner); - - var styleAttributes = { - "display": ["0", "true"], - "text": ["0", "false"], - "script": ["1", "false"], - "scriptscript": ["2", "false"] - }; - - var attr = styleAttributes[group.value.style]; - - node.setAttribute("scriptlevel", attr[0]); - node.setAttribute("displaystyle", attr[1]); - - return node; - }; - - groupTypes.sizing = function (group, options) { - var newOptions = options.havingSize(group.value.size); - var inner = buildExpression(group.value.value, newOptions); - - var node = new _mathMLTree2.default.MathNode("mstyle", inner); - - // TODO(emily): This doesn't produce the correct size for nested size - // changes, because we don't keep state of what style we're currently - // in, so we can't reset the size to normal before changing it. Now - // that we're passing an options parameter we should be able to fix - // this. - node.setAttribute("mathsize", newOptions.sizeMultiplier + "em"); - - return node; - }; - - groupTypes.overline = function (group, options) { - var operator = new _mathMLTree2.default.MathNode("mo", [new _mathMLTree2.default.TextNode("\u203E")]); - operator.setAttribute("stretchy", "true"); - - var node = new _mathMLTree2.default.MathNode("mover", [buildGroup(group.value.body, options), operator]); - node.setAttribute("accent", "true"); - - return node; - }; - - groupTypes.underline = function (group, options) { - var operator = new _mathMLTree2.default.MathNode("mo", [new _mathMLTree2.default.TextNode("\u203E")]); - operator.setAttribute("stretchy", "true"); - - var node = new _mathMLTree2.default.MathNode("munder", [buildGroup(group.value.body, options), operator]); - node.setAttribute("accentunder", "true"); - - return node; - }; - - groupTypes.accentUnder = function (group, options) { - var accentNode = _stretchy2.default.mathMLnode(group.value.label); - var node = new _mathMLTree2.default.MathNode("munder", [buildGroup(group.value.body, options), accentNode]); - node.setAttribute("accentunder", "true"); - return node; - }; - - groupTypes.enclose = function (group, options) { - var node = new _mathMLTree2.default.MathNode("menclose", [buildGroup(group.value.body, options)]); - var notation = ""; - switch (group.value.label) { - case "\\bcancel": - notation = "downdiagonalstrike"; - break; - case "\\sout": - notation = "horizontalstrike"; - break; - case "\\fbox": - notation = "box"; - break; - default: - notation = "updiagonalstrike"; - } - node.setAttribute("notation", notation); - return node; - }; - - groupTypes.horizBrace = function (group, options) { - var accentNode = _stretchy2.default.mathMLnode(group.value.label); - return new _mathMLTree2.default.MathNode(group.value.isOver ? "mover" : "munder", [buildGroup(group.value.base, options), accentNode]); - }; - - groupTypes.xArrow = function (group, options) { - var arrowNode = _stretchy2.default.mathMLnode(group.value.label); - var node = void 0; - var lowerNode = void 0; - - if (group.value.body) { - var upperNode = buildGroup(group.value.body, options); - if (group.value.below) { - lowerNode = buildGroup(group.value.below, options); - node = new _mathMLTree2.default.MathNode("munderover", [arrowNode, lowerNode, upperNode]); - } else { - node = new _mathMLTree2.default.MathNode("mover", [arrowNode, upperNode]); - } - } else if (group.value.below) { - lowerNode = buildGroup(group.value.below, options); - node = new _mathMLTree2.default.MathNode("munder", [arrowNode, lowerNode]); - } else { - node = new _mathMLTree2.default.MathNode("mover", [arrowNode]); - } - return node; - }; - - groupTypes.rule = function (group) { - // TODO(emily): Figure out if there's an actual way to draw black boxes - // in MathML. - var node = new _mathMLTree2.default.MathNode("mrow"); - - return node; - }; - - groupTypes.kern = function (group) { - // TODO(kevin): Figure out if there's a way to add space in MathML - var node = new _mathMLTree2.default.MathNode("mrow"); - - return node; - }; - - groupTypes.llap = function (group, options) { - var node = new _mathMLTree2.default.MathNode("mpadded", [buildGroup(group.value.body, options)]); - - node.setAttribute("lspace", "-1width"); - node.setAttribute("width", "0px"); - - return node; - }; - - groupTypes.rlap = function (group, options) { - var node = new _mathMLTree2.default.MathNode("mpadded", [buildGroup(group.value.body, options)]); - - node.setAttribute("width", "0px"); - - return node; - }; - - groupTypes.phantom = function (group, options) { - var inner = buildExpression(group.value.value, options); - return new _mathMLTree2.default.MathNode("mphantom", inner); - }; - - groupTypes.mclass = function (group, options) { - var inner = buildExpression(group.value.value, options); - return new _mathMLTree2.default.MathNode("mstyle", inner); - }; - - /** - * Takes a list of nodes, builds them, and returns a list of the generated - * MathML nodes. A little simpler than the HTML version because we don't do any - * previous-node handling. - */ - var buildExpression = function buildExpression(expression, options) { - var groups = []; - for (var i = 0; i < expression.length; i++) { - var group = expression[i]; - groups.push(buildGroup(group, options)); - } - - // TODO(kevinb): combine \\not with mrels and mords - - return groups; - }; - - /** - * Takes a group from the parser and calls the appropriate groupTypes function - * on it to produce a MathML node. - */ - // TODO(kevinb): determine if removeUnnecessaryRow should always be true - var buildGroup = function buildGroup(group, options) { - var removeUnnecessaryRow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - if (!group) { - return new _mathMLTree2.default.MathNode("mrow"); - } - - if (groupTypes[group.type]) { - // Call the groupTypes function - var result = groupTypes[group.type](group, options); - if (removeUnnecessaryRow) { - if (result.type === "mrow" && result.children.length === 1) { - return result.children[0]; - } - } - return result; - } else { - throw new _ParseError2.default("Got group of unknown type: '" + group.type + "'"); - } - }; - - /** - * Takes a full parse tree and settings and builds a MathML representation of - * it. In particular, we put the elements from building the parse tree into a - * tag so we can also include that TeX source as an annotation. - * - * Note that we actually return a domTree element with a `` inside it so - * we can do appropriate styling. - */ - var buildMathML = function buildMathML(tree, texExpression, options) { - var expression = buildExpression(tree, options); - - // Wrap up the expression in an mrow so it is presented in the semantics - // tag correctly. - var wrapper = new _mathMLTree2.default.MathNode("mrow", expression); - - // Build a TeX annotation of the source - var annotation = new _mathMLTree2.default.MathNode("annotation", [new _mathMLTree2.default.TextNode(texExpression)]); - - annotation.setAttribute("encoding", "application/x-tex"); - - var semantics = new _mathMLTree2.default.MathNode("semantics", [wrapper, annotation]); - - var math = new _mathMLTree2.default.MathNode("math", [semantics]); - - // You can't style nodes, so we wrap the node in a span. - return (0, _buildCommon.makeSpan)(["katex-mathml"], [math]); - }; - - module.exports = buildMathML; - - },{"./ParseError":29,"./Style":33,"./buildCommon":34,"./fontMetrics":41,"./mathMLTree":45,"./stretchy":47,"./symbols":48,"./utils":51}],37:[function(require,module,exports){ - - var _buildHTML = require("./buildHTML"); - - var _buildHTML2 = _interopRequireDefault(_buildHTML); - - var _buildMathML = require("./buildMathML"); - - var _buildMathML2 = _interopRequireDefault(_buildMathML); - - var _buildCommon = require("./buildCommon"); - - var _Options = require("./Options"); - - var _Options2 = _interopRequireDefault(_Options); - - var _Settings = require("./Settings"); - - var _Settings2 = _interopRequireDefault(_Settings); - - var _Style = require("./Style"); - - var _Style2 = _interopRequireDefault(_Style); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var buildTree = function buildTree(tree, expression, settings) { - settings = settings || new _Settings2.default({}); - - var startStyle = _Style2.default.TEXT; - if (settings.displayMode) { - startStyle = _Style2.default.DISPLAY; - } - - // Setup the default options - var options = new _Options2.default({ - style: startStyle - }); - - // `buildHTML` sometimes messes with the parse tree (like turning bins -> - // ords), so we build the MathML version first. - var mathMLNode = (0, _buildMathML2.default)(tree, expression, options); - var htmlNode = (0, _buildHTML2.default)(tree, options); - - var katexNode = (0, _buildCommon.makeSpan)(["katex"], [mathMLNode, htmlNode]); - - if (settings.displayMode) { - return (0, _buildCommon.makeSpan)(["katex-display"], [katexNode]); - } else { - return katexNode; - } - }; - - module.exports = buildTree; - - },{"./Options":28,"./Settings":32,"./Style":33,"./buildCommon":34,"./buildHTML":35,"./buildMathML":36}],38:[function(require,module,exports){ - - var _ParseError = require("./ParseError"); - - var _ParseError2 = _interopRequireDefault(_ParseError); - - var _Style = require("./Style"); - - var _Style2 = _interopRequireDefault(_Style); - - var _buildCommon = require("./buildCommon"); - - var _buildCommon2 = _interopRequireDefault(_buildCommon); - - var _fontMetrics = require("./fontMetrics"); - - var _fontMetrics2 = _interopRequireDefault(_fontMetrics); - - var _symbols = require("./symbols"); - - var _symbols2 = _interopRequireDefault(_symbols); - - var _utils = require("./utils"); - - var _utils2 = _interopRequireDefault(_utils); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /** - * Get the metrics for a given symbol and font, after transformation (i.e. - * after following replacement from symbols.js) - */ - /** - * This file deals with creating delimiters of various sizes. The TeXbook - * discusses these routines on page 441-442, in the "Another subroutine sets box - * x to a specified variable delimiter" paragraph. - * - * There are three main routines here. `makeSmallDelim` makes a delimiter in the - * normal font, but in either text, script, or scriptscript style. - * `makeLargeDelim` makes a delimiter in textstyle, but in one of the Size1, - * Size2, Size3, or Size4 fonts. `makeStackedDelim` makes a delimiter out of - * smaller pieces that are stacked on top of one another. - * - * The functions take a parameter `center`, which determines if the delimiter - * should be centered around the axis. - * - * Then, there are three exposed functions. `sizedDelim` makes a delimiter in - * one of the given sizes. This is used for things like `\bigl`. - * `customSizedDelim` makes a delimiter with a given total height+depth. It is - * called in places like `\sqrt`. `leftRightDelim` makes an appropriate - * delimiter which surrounds an expression of a given height an depth. It is - * used in `\left` and `\right`. - */ - - var getMetrics = function getMetrics(symbol, font) { - if (_symbols2.default.math[symbol] && _symbols2.default.math[symbol].replace) { - return _fontMetrics2.default.getCharacterMetrics(_symbols2.default.math[symbol].replace, font); - } else { - return _fontMetrics2.default.getCharacterMetrics(symbol, font); - } - }; - - /** - * Puts a delimiter span in a given style, and adds appropriate height, depth, - * and maxFontSizes. - */ - var styleWrap = function styleWrap(delim, toStyle, options, classes) { - var newOptions = options.havingBaseStyle(toStyle); - - var span = (0, _buildCommon.makeSpan)((classes || []).concat(newOptions.sizingClasses(options)), [delim], options); - - span.delimSizeMultiplier = newOptions.sizeMultiplier / options.sizeMultiplier; - span.height *= span.delimSizeMultiplier; - span.depth *= span.delimSizeMultiplier; - span.maxFontSize = newOptions.sizeMultiplier; - - return span; - }; - - var centerSpan = function centerSpan(span, options, style) { - var newOptions = options.havingBaseStyle(style); - var shift = (1 - options.sizeMultiplier / newOptions.sizeMultiplier) * options.fontMetrics().axisHeight; - - span.classes.push("delimcenter"); - span.style.top = shift + "em"; - span.height -= shift; - span.depth += shift; - }; - - /** - * Makes a small delimiter. This is a delimiter that comes in the Main-Regular - * font, but is restyled to either be in textstyle, scriptstyle, or - * scriptscriptstyle. - */ - var makeSmallDelim = function makeSmallDelim(delim, style, center, options, mode, classes) { - var text = _buildCommon2.default.makeSymbol(delim, "Main-Regular", mode, options); - var span = styleWrap(text, style, options, classes); - if (center) { - centerSpan(span, options, style); - } - return span; - }; - - /** - * Builds a symbol in the given font size (note size is an integer) - */ - var mathrmSize = function mathrmSize(value, size, mode, options) { - return _buildCommon2.default.makeSymbol(value, "Size" + size + "-Regular", mode, options); - }; - - /** - * Makes a large delimiter. This is a delimiter that comes in the Size1, Size2, - * Size3, or Size4 fonts. It is always rendered in textstyle. - */ - var makeLargeDelim = function makeLargeDelim(delim, size, center, options, mode, classes) { - var inner = mathrmSize(delim, size, mode, options); - var span = styleWrap((0, _buildCommon.makeSpan)(["delimsizing", "size" + size], [inner], options), _Style2.default.TEXT, options, classes); - if (center) { - centerSpan(span, options, _Style2.default.TEXT); - } - return span; - }; - - /** - * Make an inner span with the given offset and in the given font. This is used - * in `makeStackedDelim` to make the stacking pieces for the delimiter. - */ - var makeInner = function makeInner(symbol, font, mode) { - var sizeClass = void 0; - // Apply the correct CSS class to choose the right font. - if (font === "Size1-Regular") { - sizeClass = "delim-size1"; - } else if (font === "Size4-Regular") { - sizeClass = "delim-size4"; - } - - var inner = (0, _buildCommon.makeSpan)(["delimsizinginner", sizeClass], [(0, _buildCommon.makeSpan)([], [_buildCommon2.default.makeSymbol(symbol, font, mode)])]); - - // Since this will be passed into `makeVList` in the end, wrap the element - // in the appropriate tag that VList uses. - return { type: "elem", elem: inner }; - }; - - /** - * Make a stacked delimiter out of a given delimiter, with the total height at - * least `heightTotal`. This routine is mentioned on page 442 of the TeXbook. - */ - var makeStackedDelim = function makeStackedDelim(delim, heightTotal, center, options, mode, classes) { - // There are four parts, the top, an optional middle, a repeated part, and a - // bottom. - var top = void 0; - var middle = void 0; - var repeat = void 0; - var bottom = void 0; - top = repeat = bottom = delim; - middle = null; - // Also keep track of what font the delimiters are in - var font = "Size1-Regular"; - - // We set the parts and font based on the symbol. Note that we use - // '\u23d0' instead of '|' and '\u2016' instead of '\\|' for the - // repeats of the arrows - if (delim === "\\uparrow") { - repeat = bottom = "\u23D0"; - } else if (delim === "\\Uparrow") { - repeat = bottom = "\u2016"; - } else if (delim === "\\downarrow") { - top = repeat = "\u23D0"; - } else if (delim === "\\Downarrow") { - top = repeat = "\u2016"; - } else if (delim === "\\updownarrow") { - top = "\\uparrow"; - repeat = "\u23D0"; - bottom = "\\downarrow"; - } else if (delim === "\\Updownarrow") { - top = "\\Uparrow"; - repeat = "\u2016"; - bottom = "\\Downarrow"; - } else if (delim === "[" || delim === "\\lbrack") { - top = "\u23A1"; - repeat = "\u23A2"; - bottom = "\u23A3"; - font = "Size4-Regular"; - } else if (delim === "]" || delim === "\\rbrack") { - top = "\u23A4"; - repeat = "\u23A5"; - bottom = "\u23A6"; - font = "Size4-Regular"; - } else if (delim === "\\lfloor") { - repeat = top = "\u23A2"; - bottom = "\u23A3"; - font = "Size4-Regular"; - } else if (delim === "\\lceil") { - top = "\u23A1"; - repeat = bottom = "\u23A2"; - font = "Size4-Regular"; - } else if (delim === "\\rfloor") { - repeat = top = "\u23A5"; - bottom = "\u23A6"; - font = "Size4-Regular"; - } else if (delim === "\\rceil") { - top = "\u23A4"; - repeat = bottom = "\u23A5"; - font = "Size4-Regular"; - } else if (delim === "(") { - top = "\u239B"; - repeat = "\u239C"; - bottom = "\u239D"; - font = "Size4-Regular"; - } else if (delim === ")") { - top = "\u239E"; - repeat = "\u239F"; - bottom = "\u23A0"; - font = "Size4-Regular"; - } else if (delim === "\\{" || delim === "\\lbrace") { - top = "\u23A7"; - middle = "\u23A8"; - bottom = "\u23A9"; - repeat = "\u23AA"; - font = "Size4-Regular"; - } else if (delim === "\\}" || delim === "\\rbrace") { - top = "\u23AB"; - middle = "\u23AC"; - bottom = "\u23AD"; - repeat = "\u23AA"; - font = "Size4-Regular"; - } else if (delim === "\\lgroup") { - top = "\u23A7"; - bottom = "\u23A9"; - repeat = "\u23AA"; - font = "Size4-Regular"; - } else if (delim === "\\rgroup") { - top = "\u23AB"; - bottom = "\u23AD"; - repeat = "\u23AA"; - font = "Size4-Regular"; - } else if (delim === "\\lmoustache") { - top = "\u23A7"; - bottom = "\u23AD"; - repeat = "\u23AA"; - font = "Size4-Regular"; - } else if (delim === "\\rmoustache") { - top = "\u23AB"; - bottom = "\u23A9"; - repeat = "\u23AA"; - font = "Size4-Regular"; - } - - // Get the metrics of the four sections - var topMetrics = getMetrics(top, font); - var topHeightTotal = topMetrics.height + topMetrics.depth; - var repeatMetrics = getMetrics(repeat, font); - var repeatHeightTotal = repeatMetrics.height + repeatMetrics.depth; - var bottomMetrics = getMetrics(bottom, font); - var bottomHeightTotal = bottomMetrics.height + bottomMetrics.depth; - var middleHeightTotal = 0; - var middleFactor = 1; - if (middle !== null) { - var middleMetrics = getMetrics(middle, font); - middleHeightTotal = middleMetrics.height + middleMetrics.depth; - middleFactor = 2; // repeat symmetrically above and below middle - } - - // Calcuate the minimal height that the delimiter can have. - // It is at least the size of the top, bottom, and optional middle combined. - var minHeight = topHeightTotal + bottomHeightTotal + middleHeightTotal; - - // Compute the number of copies of the repeat symbol we will need - var repeatCount = Math.ceil((heightTotal - minHeight) / (middleFactor * repeatHeightTotal)); - - // Compute the total height of the delimiter including all the symbols - var realHeightTotal = minHeight + repeatCount * middleFactor * repeatHeightTotal; - - // The center of the delimiter is placed at the center of the axis. Note - // that in this context, "center" means that the delimiter should be - // centered around the axis in the current style, while normally it is - // centered around the axis in textstyle. - var axisHeight = options.fontMetrics().axisHeight; - if (center) { - axisHeight *= options.sizeMultiplier; - } - // Calculate the depth - var depth = realHeightTotal / 2 - axisHeight; - - // Now, we start building the pieces that will go into the vlist - - // Keep a list of the inner pieces - var inners = []; - - // Add the bottom symbol - inners.push(makeInner(bottom, font, mode)); - - if (middle === null) { - // Add that many symbols - for (var i = 0; i < repeatCount; i++) { - inners.push(makeInner(repeat, font, mode)); - } - } else { - // When there is a middle bit, we need the middle part and two repeated - // sections - for (var _i = 0; _i < repeatCount; _i++) { - inners.push(makeInner(repeat, font, mode)); - } - inners.push(makeInner(middle, font, mode)); - for (var _i2 = 0; _i2 < repeatCount; _i2++) { - inners.push(makeInner(repeat, font, mode)); - } - } - - // Add the top symbol - inners.push(makeInner(top, font, mode)); - - // Finally, build the vlist - var newOptions = options.havingBaseStyle(_Style2.default.TEXT); - var inner = _buildCommon2.default.makeVList(inners, "bottom", depth, newOptions); - - return styleWrap((0, _buildCommon.makeSpan)(["delimsizing", "mult"], [inner], newOptions), _Style2.default.TEXT, options, classes); - }; - - var sqrtInnerSVG = { - // The main path geometry is from glyph U221A in the font KaTeX Main - main: "", - - // size1 is from glyph U221A in the font KaTeX_Size1-Regular - 1: "", - - // size2 is from glyph U221A in the font KaTeX_Size2-Regular - 2: "", - - // size3 is from glyph U221A in the font KaTeX_Size3-Regular - 3: "", - - // size4 is from glyph U221A in the font KaTeX_Size4-Regular - 4: "", - - // tall is from glyph U23B7 in the font KaTeX_Size4-Regular - tall: "l-4 4-4 4c-.667.667-2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1h\n-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170c-4-3.333-8.333\n-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 219 661 l218 661z\nM702 0H400000v40H742z'/>" - }; - - var sqrtSpan = function sqrtSpan(height, delim, options) { - // Create a span containing an SVG image of a sqrt symbol. - var span = _buildCommon2.default.makeSpan([], [], options); - var sizeMultiplier = options.sizeMultiplier; // default - - if (delim.type === "small") { - // Get an SVG that is derived from glyph U+221A in font KaTeX-Main. - var newOptions = options.havingBaseStyle(delim.style); - sizeMultiplier = newOptions.sizeMultiplier / options.sizeMultiplier; - - span.height = 1 * sizeMultiplier; - span.style.height = span.height + "em"; - span.surdWidth = 0.833 * sizeMultiplier; // from the font. - //In the font, the glyph is 1000 units tall. The font scale is 1:1000. - - span.innerHTML = "\n " + sqrtInnerSVG['main'] + ""; - } else if (delim.type === "large") { - // These SVGs come from fonts: KaTeX_Size1, _Size2, etc. - // Get sqrt height from font data - span.height = sizeToMaxHeight[delim.size] / sizeMultiplier; - span.style.height = span.height + "em"; - span.surdWidth = 1.0 / sizeMultiplier; // from the font - - span.innerHTML = "\n " + sqrtInnerSVG[delim.size] + ""; - } else { - // Tall sqrt. In TeX, this would be stacked using multiple glyphs. - // We'll use a single SVG to accomplish the same thing. - span.height = height / sizeMultiplier; - span.style.height = span.height + "em"; - span.surdWidth = 1.056 / sizeMultiplier; - var viewBoxHeight = Math.floor(span.height * 1000); // scale = 1:1000 - var vertSegment = viewBoxHeight - 54; - - // This \sqrt is customized in both height and width. We set the - // height now. Then CSS will stretch the image to the correct width. - // This SVG path comes from glyph U+23B7, font KaTeX_Size4-Regular. - span.innerHTML = "\n \n "; - } - - span.sizeMultiplier = sizeMultiplier; - - return span; - }; - - // There are three kinds of delimiters, delimiters that stack when they become - // too large - var stackLargeDelimiters = ["(", ")", "[", "\\lbrack", "]", "\\rbrack", "\\{", "\\lbrace", "\\}", "\\rbrace", "\\lfloor", "\\rfloor", "\\lceil", "\\rceil", "\\surd"]; - - // delimiters that always stack - var stackAlwaysDelimiters = ["\\uparrow", "\\downarrow", "\\updownarrow", "\\Uparrow", "\\Downarrow", "\\Updownarrow", "|", "\\|", "\\vert", "\\Vert", "\\lvert", "\\rvert", "\\lVert", "\\rVert", "\\lgroup", "\\rgroup", "\\lmoustache", "\\rmoustache"]; - - // and delimiters that never stack - var stackNeverDelimiters = ["<", ">", "\\langle", "\\rangle", "/", "\\backslash", "\\lt", "\\gt"]; - - // Metrics of the different sizes. Found by looking at TeX's output of - // $\bigl| // \Bigl| \biggl| \Biggl| \showlists$ - // Used to create stacked delimiters of appropriate sizes in makeSizedDelim. - var sizeToMaxHeight = [0, 1.2, 1.8, 2.4, 3.0]; - - /** - * Used to create a delimiter of a specific size, where `size` is 1, 2, 3, or 4. - */ - var makeSizedDelim = function makeSizedDelim(delim, size, options, mode, classes) { - // < and > turn into \langle and \rangle in delimiters - if (delim === "<" || delim === "\\lt") { - delim = "\\langle"; - } else if (delim === ">" || delim === "\\gt") { - delim = "\\rangle"; - } - - // Sized delimiters are never centered. - if (_utils2.default.contains(stackLargeDelimiters, delim) || _utils2.default.contains(stackNeverDelimiters, delim)) { - return makeLargeDelim(delim, size, false, options, mode, classes); - } else if (_utils2.default.contains(stackAlwaysDelimiters, delim)) { - return makeStackedDelim(delim, sizeToMaxHeight[size], false, options, mode, classes); - } else { - throw new _ParseError2.default("Illegal delimiter: '" + delim + "'"); - } - }; - - /** - * There are three different sequences of delimiter sizes that the delimiters - * follow depending on the kind of delimiter. This is used when creating custom - * sized delimiters to decide whether to create a small, large, or stacked - * delimiter. - * - * In real TeX, these sequences aren't explicitly defined, but are instead - * defined inside the font metrics. Since there are only three sequences that - * are possible for the delimiters that TeX defines, it is easier to just encode - * them explicitly here. - */ - - // Delimiters that never stack try small delimiters and large delimiters only - var stackNeverDelimiterSequence = [{ type: "small", style: _Style2.default.SCRIPTSCRIPT }, { type: "small", style: _Style2.default.SCRIPT }, { type: "small", style: _Style2.default.TEXT }, { type: "large", size: 1 }, { type: "large", size: 2 }, { type: "large", size: 3 }, { type: "large", size: 4 }]; - - // Delimiters that always stack try the small delimiters first, then stack - var stackAlwaysDelimiterSequence = [{ type: "small", style: _Style2.default.SCRIPTSCRIPT }, { type: "small", style: _Style2.default.SCRIPT }, { type: "small", style: _Style2.default.TEXT }, { type: "stack" }]; - - // Delimiters that stack when large try the small and then large delimiters, and - // stack afterwards - var stackLargeDelimiterSequence = [{ type: "small", style: _Style2.default.SCRIPTSCRIPT }, { type: "small", style: _Style2.default.SCRIPT }, { type: "small", style: _Style2.default.TEXT }, { type: "large", size: 1 }, { type: "large", size: 2 }, { type: "large", size: 3 }, { type: "large", size: 4 }, { type: "stack" }]; - - /** - * Get the font used in a delimiter based on what kind of delimiter it is. - */ - var delimTypeToFont = function delimTypeToFont(type) { - if (type.type === "small") { - return "Main-Regular"; - } else if (type.type === "large") { - return "Size" + type.size + "-Regular"; - } else if (type.type === "stack") { - return "Size4-Regular"; - } - }; - - /** - * Traverse a sequence of types of delimiters to decide what kind of delimiter - * should be used to create a delimiter of the given height+depth. - */ - var traverseSequence = function traverseSequence(delim, height, sequence, options) { - // Here, we choose the index we should start at in the sequences. In smaller - // sizes (which correspond to larger numbers in style.size) we start earlier - // in the sequence. Thus, scriptscript starts at index 3-3=0, script starts - // at index 3-2=1, text starts at 3-1=2, and display starts at min(2,3-0)=2 - var start = Math.min(2, 3 - options.style.size); - for (var i = start; i < sequence.length; i++) { - if (sequence[i].type === "stack") { - // This is always the last delimiter, so we just break the loop now. - break; - } - - var metrics = getMetrics(delim, delimTypeToFont(sequence[i])); - var heightDepth = metrics.height + metrics.depth; - - // Small delimiters are scaled down versions of the same font, so we - // account for the style change size. - - if (sequence[i].type === "small") { - var newOptions = options.havingBaseStyle(sequence[i].style); - heightDepth *= newOptions.sizeMultiplier; - } - - // Check if the delimiter at this size works for the given height. - if (heightDepth > height) { - return sequence[i]; - } - } - - // If we reached the end of the sequence, return the last sequence element. - return sequence[sequence.length - 1]; - }; - - /** - * Make a delimiter of a given height+depth, with optional centering. Here, we - * traverse the sequences, and create a delimiter that the sequence tells us to. - */ - var makeCustomSizedDelim = function makeCustomSizedDelim(delim, height, center, options, mode, classes) { - if (delim === "<" || delim === "\\lt") { - delim = "\\langle"; - } else if (delim === ">" || delim === "\\gt") { - delim = "\\rangle"; - } - - // Decide what sequence to use - var sequence = void 0; - if (_utils2.default.contains(stackNeverDelimiters, delim)) { - sequence = stackNeverDelimiterSequence; - } else if (_utils2.default.contains(stackLargeDelimiters, delim)) { - sequence = stackLargeDelimiterSequence; - } else { - sequence = stackAlwaysDelimiterSequence; - } - - // Look through the sequence - var delimType = traverseSequence(delim, height, sequence, options); - - if (delim === "\\surd") { - // Get an SVG image for - return sqrtSpan(height, delimType, options); - } else { - // Get the delimiter from font glyphs. - // Depending on the sequence element we decided on, call the - // appropriate function. - if (delimType.type === "small") { - return makeSmallDelim(delim, delimType.style, center, options, mode, classes); - } else if (delimType.type === "large") { - return makeLargeDelim(delim, delimType.size, center, options, mode, classes); - } else if (delimType.type === "stack") { - return makeStackedDelim(delim, height, center, options, mode, classes); - } - } - }; - - /** - * Make a delimiter for use with `\left` and `\right`, given a height and depth - * of an expression that the delimiters surround. - */ - var makeLeftRightDelim = function makeLeftRightDelim(delim, height, depth, options, mode, classes) { - // We always center \left/\right delimiters, so the axis is always shifted - var axisHeight = options.fontMetrics().axisHeight * options.sizeMultiplier; - - // Taken from TeX source, tex.web, function make_left_right - var delimiterFactor = 901; - var delimiterExtend = 5.0 / options.fontMetrics().ptPerEm; - - var maxDistFromAxis = Math.max(height - axisHeight, depth + axisHeight); - - var totalHeight = Math.max( - // In real TeX, calculations are done using integral values which are - // 65536 per pt, or 655360 per em. So, the division here truncates in - // TeX but doesn't here, producing different results. If we wanted to - // exactly match TeX's calculation, we could do - // Math.floor(655360 * maxDistFromAxis / 500) * - // delimiterFactor / 655360 - // (To see the difference, compare - // x^{x^{\left(\rule{0.1em}{0.68em}\right)}} - // in TeX and KaTeX) - maxDistFromAxis / 500 * delimiterFactor, 2 * maxDistFromAxis - delimiterExtend); - - // Finally, we defer to `makeCustomSizedDelim` with our calculated total - // height - return makeCustomSizedDelim(delim, totalHeight, true, options, mode, classes); - }; - - module.exports = { - sizedDelim: makeSizedDelim, - customSizedDelim: makeCustomSizedDelim, - leftRightDelim: makeLeftRightDelim - }; - - },{"./ParseError":29,"./Style":33,"./buildCommon":34,"./fontMetrics":41,"./symbols":48,"./utils":51}],39:[function(require,module,exports){ - - var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = require("babel-runtime/helpers/createClass"); - - var _createClass3 = _interopRequireDefault(_createClass2); - - var _unicodeRegexes = require("./unicodeRegexes"); - - var _unicodeRegexes2 = _interopRequireDefault(_unicodeRegexes); - - var _utils = require("./utils"); - - var _utils2 = _interopRequireDefault(_utils); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /** - * Create an HTML className based on a list of classes. In addition to joining - * with spaces, we also remove null or empty classes. - */ - /** - * These objects store the data about the DOM nodes we create, as well as some - * extra data. They can then be transformed into real DOM nodes with the - * `toNode` function or HTML markup using `toMarkup`. They are useful for both - * storing extra properties on the nodes, as well as providing a way to easily - * work with the DOM. - * - * Similar functions for working with MathML nodes exist in mathMLTree.js. - */ - var createClass = function createClass(classes) { - classes = classes.slice(); - for (var i = classes.length - 1; i >= 0; i--) { - if (!classes[i]) { - classes.splice(i, 1); - } - } - - return classes.join(" "); - }; - - /** - * This node represents a span node, with a className, a list of children, and - * an inline style. It also contains information about its height, depth, and - * maxFontSize. - */ - - var span = function () { - function span(classes, children, options) { - (0, _classCallCheck3.default)(this, span); - - this.classes = classes || []; - this.children = children || []; - this.height = 0; - this.depth = 0; - this.maxFontSize = 0; - this.style = {}; - this.attributes = {}; - this.innerHTML; // used for inline SVG code. - if (options) { - if (options.style.isTight()) { - this.classes.push("mtight"); - } - if (options.getColor()) { - this.style.color = options.getColor(); - } - } - } - - /** - * Sets an arbitrary attribute on the span. Warning: use this wisely. Not all - * browsers support attributes the same, and having too many custom attributes - * is probably bad. - */ - - - (0, _createClass3.default)(span, [{ - key: "setAttribute", - value: function setAttribute(attribute, value) { - this.attributes[attribute] = value; - } - }, { - key: "tryCombine", - value: function tryCombine(sibling) { - return false; - } - - /** - * Convert the span into an HTML node - */ - - }, { - key: "toNode", - value: function toNode() { - var span = document.createElement("span"); - - // Apply the class - span.className = createClass(this.classes); - - // Apply inline styles - for (var style in this.style) { - if (Object.prototype.hasOwnProperty.call(this.style, style)) { - span.style[style] = this.style[style]; - } - } - - // Apply attributes - for (var attr in this.attributes) { - if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) { - span.setAttribute(attr, this.attributes[attr]); - } - } - - if (this.innerHTML) { - span.innerHTML = this.innerHTML; - } - - // Append the children, also as HTML nodes - for (var i = 0; i < this.children.length; i++) { - span.appendChild(this.children[i].toNode()); - } - - return span; - } - - /** - * Convert the span into an HTML markup string - */ - - }, { - key: "toMarkup", - value: function toMarkup() { - var markup = " 0 || createClass(this.classes) !== createClass(sibling.classes) || this.skew !== sibling.skew || this.maxFontSize !== sibling.maxFontSize) { - return false; - } - for (var style in this.style) { - if (this.style.hasOwnProperty(style) && this.style[style] !== sibling.style[style]) { - return false; - } - } - for (var _style in sibling.style) { - if (sibling.style.hasOwnProperty(_style) && this.style[_style] !== sibling.style[_style]) { - return false; - } - } - this.value += sibling.value; - this.height = Math.max(this.height, sibling.height); - this.depth = Math.max(this.depth, sibling.depth); - this.italic = sibling.italic; - return true; - } - - /** - * Creates a text node or span from a symbol node. Note that a span is only - * created if it is needed. - */ - - }, { - key: "toNode", - value: function toNode() { - var node = document.createTextNode(this.value); - var span = null; - - if (this.italic > 0) { - span = document.createElement("span"); - span.style.marginRight = this.italic + "em"; - } - - if (this.classes.length > 0) { - span = span || document.createElement("span"); - span.className = createClass(this.classes); - } - - for (var style in this.style) { - if (this.style.hasOwnProperty(style)) { - span = span || document.createElement("span"); - span.style[style] = this.style[style]; - } - } - - if (span) { - span.appendChild(node); - return span; - } else { - return node; - } - } - - /** - * Creates markup for a symbol node. - */ - - }, { - key: "toMarkup", - value: function toMarkup() { - // TODO(alpert): More duplication than I'd like from - // span.prototype.toMarkup and symbolNode.prototype.toNode... - var needsSpan = false; - - var markup = " 0) { - styles += "margin-right:" + this.italic + "em;"; - } - for (var style in this.style) { - if (this.style.hasOwnProperty(style)) { - styles += _utils2.default.hyphenate(style) + ":" + this.style[style] + ";"; - } - } - - if (styles) { - needsSpan = true; - markup += " style=\"" + _utils2.default.escape(styles) + "\""; - } - - var escaped = _utils2.default.escape(this.value); - if (needsSpan) { - markup += ">"; - markup += escaped; - markup += "
      "; - return markup; - } else { - return escaped; - } - } - }]); - return symbolNode; - }(); - - module.exports = { - span: span, - documentFragment: documentFragment, - symbolNode: symbolNode - }; - - },{"./unicodeRegexes":49,"./utils":51,"babel-runtime/helpers/classCallCheck":4,"babel-runtime/helpers/createClass":5}],40:[function(require,module,exports){ - - var _ParseNode = require("./ParseNode"); - - var _ParseNode2 = _interopRequireDefault(_ParseNode); - - var _ParseError = require("./ParseError"); - - var _ParseError2 = _interopRequireDefault(_ParseError); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /** - * Parse the body of the environment, with rows delimited by \\ and - * columns delimited by &, and create a nested list in row-major order - * with one group per cell. If given an optional argument style - * ("text", "display", etc.), then each cell is cast into that style. - */ - /* eslint no-constant-condition:0 */ - function parseArray(parser, result, style) { - var row = []; - var body = [row]; - var rowGaps = []; - while (true) { - var cell = parser.parseExpression(false, null); - cell = new _ParseNode2.default("ordgroup", cell, parser.mode); - if (style) { - cell = new _ParseNode2.default("styling", { - style: style, - value: [cell] - }, parser.mode); - } - row.push(cell); - var next = parser.nextToken.text; - if (next === "&") { - parser.consume(); - } else if (next === "\\end") { - break; - } else if (next === "\\\\" || next === "\\cr") { - var cr = parser.parseFunction(); - rowGaps.push(cr.value.size); - row = []; - body.push(row); - } else { - throw new _ParseError2.default("Expected & or \\\\ or \\end", parser.nextToken); - } - } - result.body = body; - result.rowGaps = rowGaps; - return new _ParseNode2.default(result.type, result, parser.mode); - } - - /* - * An environment definition is very similar to a function definition: - * it is declared with a name or a list of names, a set of properties - * and a handler containing the actual implementation. - * - * The properties include: - * - numArgs: The number of arguments after the \begin{name} function. - * - argTypes: (optional) Just like for a function - * - allowedInText: (optional) Whether or not the environment is allowed inside - * text mode (default false) (not enforced yet) - * - numOptionalArgs: (optional) Just like for a function - * A bare number instead of that object indicates the numArgs value. - * - * The handler function will receive two arguments - * - context: information and references provided by the parser - * - args: an array of arguments passed to \begin{name} - * The context contains the following properties: - * - envName: the name of the environment, one of the listed names. - * - parser: the parser object - * - lexer: the lexer object - * - positions: the positions associated with these arguments from args. - * The handler must return a ParseResult. - */ - function defineEnvironment(names, props, handler) { - if (typeof names === "string") { - names = [names]; - } - if (typeof props === "number") { - props = { numArgs: props }; - } - // Set default values of environments - var data = { - numArgs: props.numArgs || 0, - argTypes: props.argTypes, - greediness: 1, - allowedInText: !!props.allowedInText, - numOptionalArgs: props.numOptionalArgs || 0, - handler: handler - }; - for (var i = 0; i < names.length; ++i) { - module.exports[names[i]] = data; - } - } - - // Decides on a style for cells in an array according to whether the given - // environment name starts with the letter 'd'. - function dCellStyle(envName) { - if (envName.substr(0, 1) === "d") { - return "display"; - } else { - return "text"; - } - } - - // Arrays are part of LaTeX, defined in lttab.dtx so its documentation - // is part of the source2e.pdf file of LaTeX2e source documentation. - // {darray} is an {array} environment where cells are set in \displaystyle, - // as defined in nccmath.sty. - defineEnvironment(["array", "darray"], { - numArgs: 1 - }, function (context, args) { - var colalign = args[0]; - colalign = colalign.value.map ? colalign.value : [colalign]; - var cols = colalign.map(function (node) { - var ca = node.value; - if ("lcr".indexOf(ca) !== -1) { - return { - type: "align", - align: ca - }; - } else if (ca === "|") { - return { - type: "separator", - separator: "|" - }; - } - throw new _ParseError2.default("Unknown column alignment: " + node.value, node); - }); - var res = { - type: "array", - cols: cols, - hskipBeforeAndAfter: true }; - res = parseArray(context.parser, res, dCellStyle(context.envName)); - return res; - }); - - // The matrix environments of amsmath builds on the array environment - // of LaTeX, which is discussed above. - defineEnvironment(["matrix", "pmatrix", "bmatrix", "Bmatrix", "vmatrix", "Vmatrix"], {}, function (context) { - var delimiters = { - "matrix": null, - "pmatrix": ["(", ")"], - "bmatrix": ["[", "]"], - "Bmatrix": ["\\{", "\\}"], - "vmatrix": ["|", "|"], - "Vmatrix": ["\\Vert", "\\Vert"] - }[context.envName]; - var res = { - type: "array", - hskipBeforeAndAfter: false }; - res = parseArray(context.parser, res, dCellStyle(context.envName)); - if (delimiters) { - res = new _ParseNode2.default("leftright", { - body: [res], - left: delimiters[0], - right: delimiters[1] - }, context.mode); - } - return res; - }); - - // A cases environment (in amsmath.sty) is almost equivalent to - // \def\arraystretch{1.2}% - // \left\{\begin{array}{@{}l@{\quad}l@{}} … \end{array}\right. - // {dcases} is a {cases} environment where cells are set in \displaystyle, - // as defined in mathtools.sty. - defineEnvironment(["cases", "dcases"], {}, function (context) { - var res = { - type: "array", - arraystretch: 1.2, - cols: [{ - type: "align", - align: "l", - pregap: 0, - // TODO(kevinb) get the current style. - // For now we use the metrics for TEXT style which is what we were - // doing before. Before attempting to get the current style we - // should look at TeX's behavior especially for \over and matrices. - postgap: 1.0 }, { - type: "align", - align: "l", - pregap: 0, - postgap: 0 - }] - }; - res = parseArray(context.parser, res, dCellStyle(context.envName)); - res = new _ParseNode2.default("leftright", { - body: [res], - left: "\\{", - right: "." - }, context.mode); - return res; - }); - - // An aligned environment is like the align* environment - // except it operates within math mode. - // Note that we assume \nomallineskiplimit to be zero, - // so that \strut@ is the same as \strut. - defineEnvironment("aligned", {}, function (context) { - var res = { - type: "array", - cols: [], - addJot: true - }; - res = parseArray(context.parser, res, "display"); - // Count number of columns = maximum number of cells in each row. - // At the same time, prepend empty group {} at beginning of every second - // cell in each row (starting with second cell) so that operators become - // binary. This behavior is implemented in amsmath's \start@aligned. - var emptyGroup = new _ParseNode2.default("ordgroup", [], context.mode); - var numCols = 0; - res.value.body.forEach(function (row) { - for (var i = 1; i < row.length; i += 2) { - // Modify ordgroup node within styling node - var ordgroup = row[i].value.value[0]; - ordgroup.value.unshift(emptyGroup); - } - if (numCols < row.length) { - numCols = row.length; - } - }); - for (var i = 0; i < numCols; ++i) { - var align = "r"; - var pregap = 0; - if (i % 2 === 1) { - align = "l"; - } else if (i > 0) { - pregap = 2; // one \qquad between columns - } - res.value.cols[i] = { - type: "align", - align: align, - pregap: pregap, - postgap: 0 - }; - } - return res; - }); - - // A gathered environment is like an array environment with one centered - // column, but where rows are considered lines so get \jot line spacing - // and contents are set in \displaystyle. - defineEnvironment("gathered", {}, function (context) { - var res = { - type: "array", - cols: [{ - type: "align", - align: "c" - }], - addJot: true - }; - res = parseArray(context.parser, res, "display"); - return res; - }); - - },{"./ParseError":29,"./ParseNode":30}],41:[function(require,module,exports){ - - var _unicodeRegexes = require("./unicodeRegexes"); - - var _fontMetricsData = require("./fontMetricsData"); - - var _fontMetricsData2 = _interopRequireDefault(_fontMetricsData); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /** - * This file contains metrics regarding fonts and individual symbols. The sigma - * and xi variables, as well as the metricMap map contain data extracted from - * TeX, TeX font metrics, and the TTF files. These data are then exposed via the - * `metrics` variable and the getCharacterMetrics function. - */ - - // In TeX, there are actually three sets of dimensions, one for each of - // textstyle (size index 5 and higher: >=9pt), scriptstyle (size index 3 and 4: - // 7-8pt), and scriptscriptstyle (size index 1 and 2: 5-6pt). These are - // provided in the the arrays below, in that order. - // - // The font metrics are stored in fonts cmsy10, cmsy7, and cmsy5 respsectively. - // This was determined by running the following script: - // - // latex -interaction=nonstopmode \ - // '\documentclass{article}\usepackage{amsmath}\begin{document}' \ - // '$a$ \expandafter\show\the\textfont2' \ - // '\expandafter\show\the\scriptfont2' \ - // '\expandafter\show\the\scriptscriptfont2' \ - // '\stop' - // - // The metrics themselves were retreived using the following commands: - // - // tftopl cmsy10 - // tftopl cmsy7 - // tftopl cmsy5 - // - // The output of each of these commands is quite lengthy. The only part we - // care about is the FONTDIMEN section. Each value is measured in EMs. - var sigmasAndXis = { - slant: [0.250, 0.250, 0.250], // sigma1 - space: [0.000, 0.000, 0.000], // sigma2 - stretch: [0.000, 0.000, 0.000], // sigma3 - shrink: [0.000, 0.000, 0.000], // sigma4 - xHeight: [0.431, 0.431, 0.431], // sigma5 - quad: [1.000, 1.171, 1.472], // sigma6 - extraSpace: [0.000, 0.000, 0.000], // sigma7 - num1: [0.677, 0.732, 0.925], // sigma8 - num2: [0.394, 0.384, 0.387], // sigma9 - num3: [0.444, 0.471, 0.504], // sigma10 - denom1: [0.686, 0.752, 1.025], // sigma11 - denom2: [0.345, 0.344, 0.532], // sigma12 - sup1: [0.413, 0.503, 0.504], // sigma13 - sup2: [0.363, 0.431, 0.404], // sigma14 - sup3: [0.289, 0.286, 0.294], // sigma15 - sub1: [0.150, 0.143, 0.200], // sigma16 - sub2: [0.247, 0.286, 0.400], // sigma17 - supDrop: [0.386, 0.353, 0.494], // sigma18 - subDrop: [0.050, 0.071, 0.100], // sigma19 - delim1: [2.390, 1.700, 1.980], // sigma20 - delim2: [1.010, 1.157, 1.420], // sigma21 - axisHeight: [0.250, 0.250, 0.250], // sigma22 - - // These font metrics are extracted from TeX by using tftopl on cmex10.tfm; - // they correspond to the font parameters of the extension fonts (family 3). - // See the TeXbook, page 441. In AMSTeX, the extension fonts scale; to - // match cmex7, we'd use cmex7.tfm values for script and scriptscript - // values. - defaultRuleThickness: [0.04, 0.049, 0.049], // xi8; cmex7: 0.049 - bigOpSpacing1: [0.111, 0.111, 0.111], // xi9 - bigOpSpacing2: [0.166, 0.166, 0.166], // xi10 - bigOpSpacing3: [0.2, 0.2, 0.2], // xi11 - bigOpSpacing4: [0.6, 0.611, 0.611], // xi12; cmex7: 0.611 - bigOpSpacing5: [0.1, 0.143, 0.143], // xi13; cmex7: 0.143 - - // The \sqrt rule width is taken from the height of the surd character. - // Since we use the same font at all sizes, this thickness doesn't scale. - sqrtRuleThickness: [0.04, 0.04, 0.04], - - // This value determines how large a pt is, for metrics which are defined - // in terms of pts. - // This value is also used in katex.less; if you change it make sure the - // values match. - ptPerEm: [10.0, 10.0, 10.0], - - // The space between adjacent `|` columns in an array definition. From - // `\showthe\doublerulesep` in LaTeX. Equals 2.0 / ptPerEm. - doubleRuleSep: [0.2, 0.2, 0.2] - }; - - // This map contains a mapping from font name and character code to character - // metrics, including height, depth, italic correction, and skew (kern from the - // character to the corresponding \skewchar) - // This map is generated via `make metrics`. It should not be changed manually. - - - // These are very rough approximations. We default to Times New Roman which - // should have Latin-1 and Cyrillic characters, but may not depending on the - // operating system. The metrics do not account for extra height from the - // accents. In the case of Cyrillic characters which have both ascenders and - // descenders we prefer approximations with ascenders, primarily to prevent - // the fraction bar or root line from intersecting the glyph. - // TODO(kevinb) allow union of multiple glyph metrics for better accuracy. - var extraCharacterMap = { - // Latin-1 - 'À': 'A', - 'Á': 'A', - 'Â': 'A', - 'Ã': 'A', - 'Ä': 'A', - 'Å': 'A', - 'Æ': 'A', - 'Ç': 'C', - 'È': 'E', - 'É': 'E', - 'Ê': 'E', - 'Ë': 'E', - 'Ì': 'I', - 'Í': 'I', - 'Î': 'I', - 'Ï': 'I', - 'Ð': 'D', - 'Ñ': 'N', - 'Ò': 'O', - 'Ó': 'O', - 'Ô': 'O', - 'Õ': 'O', - 'Ö': 'O', - 'Ø': 'O', - 'Ù': 'U', - 'Ú': 'U', - 'Û': 'U', - 'Ü': 'U', - 'Ý': 'Y', - 'Þ': 'o', - 'ß': 'B', - 'à': 'a', - 'á': 'a', - 'â': 'a', - 'ã': 'a', - 'ä': 'a', - 'å': 'a', - 'æ': 'a', - 'ç': 'c', - 'è': 'e', - 'é': 'e', - 'ê': 'e', - 'ë': 'e', - 'ì': 'i', - 'í': 'i', - 'î': 'i', - 'ï': 'i', - 'ð': 'd', - 'ñ': 'n', - 'ò': 'o', - 'ó': 'o', - 'ô': 'o', - 'õ': 'o', - 'ö': 'o', - 'ø': 'o', - 'ù': 'u', - 'ú': 'u', - 'û': 'u', - 'ü': 'u', - 'ý': 'y', - 'þ': 'o', - 'ÿ': 'y', - - // Cyrillic - 'А': 'A', - 'Б': 'B', - 'В': 'B', - 'Г': 'F', - 'Д': 'A', - 'Е': 'E', - 'Ж': 'K', - 'З': '3', - 'И': 'N', - 'Й': 'N', - 'К': 'K', - 'Л': 'N', - 'М': 'M', - 'Н': 'H', - 'О': 'O', - 'П': 'N', - 'Р': 'P', - 'С': 'C', - 'Т': 'T', - 'У': 'y', - 'Ф': 'O', - 'Х': 'X', - 'Ц': 'U', - 'Ч': 'h', - 'Ш': 'W', - 'Щ': 'W', - 'Ъ': 'B', - 'Ы': 'X', - 'Ь': 'B', - 'Э': '3', - 'Ю': 'X', - 'Я': 'R', - 'а': 'a', - 'б': 'b', - 'в': 'a', - 'г': 'r', - 'д': 'y', - 'е': 'e', - 'ж': 'm', - 'з': 'e', - 'и': 'n', - 'й': 'n', - 'к': 'n', - 'л': 'n', - 'м': 'm', - 'н': 'n', - 'о': 'o', - 'п': 'n', - 'р': 'p', - 'с': 'c', - 'т': 'o', - 'у': 'y', - 'ф': 'b', - 'х': 'x', - 'ц': 'n', - 'ч': 'n', - 'ш': 'w', - 'щ': 'w', - 'ъ': 'a', - 'ы': 'm', - 'ь': 'a', - 'э': 'e', - 'ю': 'm', - 'я': 'r' - }; - - /** - * This function is a convenience function for looking up information in the - * metricMap table. It takes a character as a string, and a style. - * - * Note: the `width` property may be undefined if fontMetricsData.js wasn't - * built using `Make extended_metrics`. - */ - var getCharacterMetrics = function getCharacterMetrics(character, style) { - var ch = character.charCodeAt(0); - if (character[0] in extraCharacterMap) { - ch = extraCharacterMap[character[0]].charCodeAt(0); - } else if (_unicodeRegexes.cjkRegex.test(character[0])) { - ch = 'M'.charCodeAt(0); - } - var metrics = _fontMetricsData2.default[style][ch]; - if (metrics) { - return { - depth: metrics[0], - height: metrics[1], - italic: metrics[2], - skew: metrics[3], - width: metrics[4] - }; - } - }; - - var fontMetricsBySizeIndex = {}; - - /** - * Get the font metrics for a given size. - */ - var getFontMetrics = function getFontMetrics(size) { - var sizeIndex = void 0; - if (size >= 5) { - sizeIndex = 0; - } else if (size >= 3) { - sizeIndex = 1; - } else { - sizeIndex = 2; - } - if (!fontMetricsBySizeIndex[sizeIndex]) { - var metrics = fontMetricsBySizeIndex[sizeIndex] = {}; - for (var key in sigmasAndXis) { - if (sigmasAndXis.hasOwnProperty(key)) { - metrics[key] = sigmasAndXis[key][sizeIndex]; - } - } - metrics.cssEmPerMu = metrics.quad / 18; - } - return fontMetricsBySizeIndex[sizeIndex]; - }; - - module.exports = { - getFontMetrics: getFontMetrics, - getCharacterMetrics: getCharacterMetrics - }; - - },{"./fontMetricsData":42,"./unicodeRegexes":49}],42:[function(require,module,exports){ - - module.exports = { - "AMS-Regular": { - "65": [0, 0.68889, 0, 0], - "66": [0, 0.68889, 0, 0], - "67": [0, 0.68889, 0, 0], - "68": [0, 0.68889, 0, 0], - "69": [0, 0.68889, 0, 0], - "70": [0, 0.68889, 0, 0], - "71": [0, 0.68889, 0, 0], - "72": [0, 0.68889, 0, 0], - "73": [0, 0.68889, 0, 0], - "74": [0.16667, 0.68889, 0, 0], - "75": [0, 0.68889, 0, 0], - "76": [0, 0.68889, 0, 0], - "77": [0, 0.68889, 0, 0], - "78": [0, 0.68889, 0, 0], - "79": [0.16667, 0.68889, 0, 0], - "80": [0, 0.68889, 0, 0], - "81": [0.16667, 0.68889, 0, 0], - "82": [0, 0.68889, 0, 0], - "83": [0, 0.68889, 0, 0], - "84": [0, 0.68889, 0, 0], - "85": [0, 0.68889, 0, 0], - "86": [0, 0.68889, 0, 0], - "87": [0, 0.68889, 0, 0], - "88": [0, 0.68889, 0, 0], - "89": [0, 0.68889, 0, 0], - "90": [0, 0.68889, 0, 0], - "107": [0, 0.68889, 0, 0], - "165": [0, 0.675, 0.025, 0], - "174": [0.15559, 0.69224, 0, 0], - "240": [0, 0.68889, 0, 0], - "295": [0, 0.68889, 0, 0], - "710": [0, 0.825, 0, 0], - "732": [0, 0.9, 0, 0], - "770": [0, 0.825, 0, 0], - "771": [0, 0.9, 0, 0], - "989": [0.08167, 0.58167, 0, 0], - "1008": [0, 0.43056, 0.04028, 0], - "8245": [0, 0.54986, 0, 0], - "8463": [0, 0.68889, 0, 0], - "8487": [0, 0.68889, 0, 0], - "8498": [0, 0.68889, 0, 0], - "8502": [0, 0.68889, 0, 0], - "8503": [0, 0.68889, 0, 0], - "8504": [0, 0.68889, 0, 0], - "8513": [0, 0.68889, 0, 0], - "8592": [-0.03598, 0.46402, 0, 0], - "8594": [-0.03598, 0.46402, 0, 0], - "8602": [-0.13313, 0.36687, 0, 0], - "8603": [-0.13313, 0.36687, 0, 0], - "8606": [0.01354, 0.52239, 0, 0], - "8608": [0.01354, 0.52239, 0, 0], - "8610": [0.01354, 0.52239, 0, 0], - "8611": [0.01354, 0.52239, 0, 0], - "8619": [0, 0.54986, 0, 0], - "8620": [0, 0.54986, 0, 0], - "8621": [-0.13313, 0.37788, 0, 0], - "8622": [-0.13313, 0.36687, 0, 0], - "8624": [0, 0.69224, 0, 0], - "8625": [0, 0.69224, 0, 0], - "8630": [0, 0.43056, 0, 0], - "8631": [0, 0.43056, 0, 0], - "8634": [0.08198, 0.58198, 0, 0], - "8635": [0.08198, 0.58198, 0, 0], - "8638": [0.19444, 0.69224, 0, 0], - "8639": [0.19444, 0.69224, 0, 0], - "8642": [0.19444, 0.69224, 0, 0], - "8643": [0.19444, 0.69224, 0, 0], - "8644": [0.1808, 0.675, 0, 0], - "8646": [0.1808, 0.675, 0, 0], - "8647": [0.1808, 0.675, 0, 0], - "8648": [0.19444, 0.69224, 0, 0], - "8649": [0.1808, 0.675, 0, 0], - "8650": [0.19444, 0.69224, 0, 0], - "8651": [0.01354, 0.52239, 0, 0], - "8652": [0.01354, 0.52239, 0, 0], - "8653": [-0.13313, 0.36687, 0, 0], - "8654": [-0.13313, 0.36687, 0, 0], - "8655": [-0.13313, 0.36687, 0, 0], - "8666": [0.13667, 0.63667, 0, 0], - "8667": [0.13667, 0.63667, 0, 0], - "8669": [-0.13313, 0.37788, 0, 0], - "8672": [-0.064, 0.437, 0, 0], - "8674": [-0.064, 0.437, 0, 0], - "8705": [0, 0.825, 0, 0], - "8708": [0, 0.68889, 0, 0], - "8709": [0.08167, 0.58167, 0, 0], - "8717": [0, 0.43056, 0, 0], - "8722": [-0.03598, 0.46402, 0, 0], - "8724": [0.08198, 0.69224, 0, 0], - "8726": [0.08167, 0.58167, 0, 0], - "8733": [0, 0.69224, 0, 0], - "8736": [0, 0.69224, 0, 0], - "8737": [0, 0.69224, 0, 0], - "8738": [0.03517, 0.52239, 0, 0], - "8739": [0.08167, 0.58167, 0, 0], - "8740": [0.25142, 0.74111, 0, 0], - "8741": [0.08167, 0.58167, 0, 0], - "8742": [0.25142, 0.74111, 0, 0], - "8756": [0, 0.69224, 0, 0], - "8757": [0, 0.69224, 0, 0], - "8764": [-0.13313, 0.36687, 0, 0], - "8765": [-0.13313, 0.37788, 0, 0], - "8769": [-0.13313, 0.36687, 0, 0], - "8770": [-0.03625, 0.46375, 0, 0], - "8774": [0.30274, 0.79383, 0, 0], - "8776": [-0.01688, 0.48312, 0, 0], - "8778": [0.08167, 0.58167, 0, 0], - "8782": [0.06062, 0.54986, 0, 0], - "8783": [0.06062, 0.54986, 0, 0], - "8785": [0.08198, 0.58198, 0, 0], - "8786": [0.08198, 0.58198, 0, 0], - "8787": [0.08198, 0.58198, 0, 0], - "8790": [0, 0.69224, 0, 0], - "8791": [0.22958, 0.72958, 0, 0], - "8796": [0.08198, 0.91667, 0, 0], - "8806": [0.25583, 0.75583, 0, 0], - "8807": [0.25583, 0.75583, 0, 0], - "8808": [0.25142, 0.75726, 0, 0], - "8809": [0.25142, 0.75726, 0, 0], - "8812": [0.25583, 0.75583, 0, 0], - "8814": [0.20576, 0.70576, 0, 0], - "8815": [0.20576, 0.70576, 0, 0], - "8816": [0.30274, 0.79383, 0, 0], - "8817": [0.30274, 0.79383, 0, 0], - "8818": [0.22958, 0.72958, 0, 0], - "8819": [0.22958, 0.72958, 0, 0], - "8822": [0.1808, 0.675, 0, 0], - "8823": [0.1808, 0.675, 0, 0], - "8828": [0.13667, 0.63667, 0, 0], - "8829": [0.13667, 0.63667, 0, 0], - "8830": [0.22958, 0.72958, 0, 0], - "8831": [0.22958, 0.72958, 0, 0], - "8832": [0.20576, 0.70576, 0, 0], - "8833": [0.20576, 0.70576, 0, 0], - "8840": [0.30274, 0.79383, 0, 0], - "8841": [0.30274, 0.79383, 0, 0], - "8842": [0.13597, 0.63597, 0, 0], - "8843": [0.13597, 0.63597, 0, 0], - "8847": [0.03517, 0.54986, 0, 0], - "8848": [0.03517, 0.54986, 0, 0], - "8858": [0.08198, 0.58198, 0, 0], - "8859": [0.08198, 0.58198, 0, 0], - "8861": [0.08198, 0.58198, 0, 0], - "8862": [0, 0.675, 0, 0], - "8863": [0, 0.675, 0, 0], - "8864": [0, 0.675, 0, 0], - "8865": [0, 0.675, 0, 0], - "8872": [0, 0.69224, 0, 0], - "8873": [0, 0.69224, 0, 0], - "8874": [0, 0.69224, 0, 0], - "8876": [0, 0.68889, 0, 0], - "8877": [0, 0.68889, 0, 0], - "8878": [0, 0.68889, 0, 0], - "8879": [0, 0.68889, 0, 0], - "8882": [0.03517, 0.54986, 0, 0], - "8883": [0.03517, 0.54986, 0, 0], - "8884": [0.13667, 0.63667, 0, 0], - "8885": [0.13667, 0.63667, 0, 0], - "8888": [0, 0.54986, 0, 0], - "8890": [0.19444, 0.43056, 0, 0], - "8891": [0.19444, 0.69224, 0, 0], - "8892": [0.19444, 0.69224, 0, 0], - "8901": [0, 0.54986, 0, 0], - "8903": [0.08167, 0.58167, 0, 0], - "8905": [0.08167, 0.58167, 0, 0], - "8906": [0.08167, 0.58167, 0, 0], - "8907": [0, 0.69224, 0, 0], - "8908": [0, 0.69224, 0, 0], - "8909": [-0.03598, 0.46402, 0, 0], - "8910": [0, 0.54986, 0, 0], - "8911": [0, 0.54986, 0, 0], - "8912": [0.03517, 0.54986, 0, 0], - "8913": [0.03517, 0.54986, 0, 0], - "8914": [0, 0.54986, 0, 0], - "8915": [0, 0.54986, 0, 0], - "8916": [0, 0.69224, 0, 0], - "8918": [0.0391, 0.5391, 0, 0], - "8919": [0.0391, 0.5391, 0, 0], - "8920": [0.03517, 0.54986, 0, 0], - "8921": [0.03517, 0.54986, 0, 0], - "8922": [0.38569, 0.88569, 0, 0], - "8923": [0.38569, 0.88569, 0, 0], - "8926": [0.13667, 0.63667, 0, 0], - "8927": [0.13667, 0.63667, 0, 0], - "8928": [0.30274, 0.79383, 0, 0], - "8929": [0.30274, 0.79383, 0, 0], - "8934": [0.23222, 0.74111, 0, 0], - "8935": [0.23222, 0.74111, 0, 0], - "8936": [0.23222, 0.74111, 0, 0], - "8937": [0.23222, 0.74111, 0, 0], - "8938": [0.20576, 0.70576, 0, 0], - "8939": [0.20576, 0.70576, 0, 0], - "8940": [0.30274, 0.79383, 0, 0], - "8941": [0.30274, 0.79383, 0, 0], - "8994": [0.19444, 0.69224, 0, 0], - "8995": [0.19444, 0.69224, 0, 0], - "9416": [0.15559, 0.69224, 0, 0], - "9484": [0, 0.69224, 0, 0], - "9488": [0, 0.69224, 0, 0], - "9492": [0, 0.37788, 0, 0], - "9496": [0, 0.37788, 0, 0], - "9585": [0.19444, 0.68889, 0, 0], - "9586": [0.19444, 0.74111, 0, 0], - "9632": [0, 0.675, 0, 0], - "9633": [0, 0.675, 0, 0], - "9650": [0, 0.54986, 0, 0], - "9651": [0, 0.54986, 0, 0], - "9654": [0.03517, 0.54986, 0, 0], - "9660": [0, 0.54986, 0, 0], - "9661": [0, 0.54986, 0, 0], - "9664": [0.03517, 0.54986, 0, 0], - "9674": [0.11111, 0.69224, 0, 0], - "9733": [0.19444, 0.69224, 0, 0], - "10003": [0, 0.69224, 0, 0], - "10016": [0, 0.69224, 0, 0], - "10731": [0.11111, 0.69224, 0, 0], - "10846": [0.19444, 0.75583, 0, 0], - "10877": [0.13667, 0.63667, 0, 0], - "10878": [0.13667, 0.63667, 0, 0], - "10885": [0.25583, 0.75583, 0, 0], - "10886": [0.25583, 0.75583, 0, 0], - "10887": [0.13597, 0.63597, 0, 0], - "10888": [0.13597, 0.63597, 0, 0], - "10889": [0.26167, 0.75726, 0, 0], - "10890": [0.26167, 0.75726, 0, 0], - "10891": [0.48256, 0.98256, 0, 0], - "10892": [0.48256, 0.98256, 0, 0], - "10901": [0.13667, 0.63667, 0, 0], - "10902": [0.13667, 0.63667, 0, 0], - "10933": [0.25142, 0.75726, 0, 0], - "10934": [0.25142, 0.75726, 0, 0], - "10935": [0.26167, 0.75726, 0, 0], - "10936": [0.26167, 0.75726, 0, 0], - "10937": [0.26167, 0.75726, 0, 0], - "10938": [0.26167, 0.75726, 0, 0], - "10949": [0.25583, 0.75583, 0, 0], - "10950": [0.25583, 0.75583, 0, 0], - "10955": [0.28481, 0.79383, 0, 0], - "10956": [0.28481, 0.79383, 0, 0], - "57350": [0.08167, 0.58167, 0, 0], - "57351": [0.08167, 0.58167, 0, 0], - "57352": [0.08167, 0.58167, 0, 0], - "57353": [0, 0.43056, 0.04028, 0], - "57356": [0.25142, 0.75726, 0, 0], - "57357": [0.25142, 0.75726, 0, 0], - "57358": [0.41951, 0.91951, 0, 0], - "57359": [0.30274, 0.79383, 0, 0], - "57360": [0.30274, 0.79383, 0, 0], - "57361": [0.41951, 0.91951, 0, 0], - "57366": [0.25142, 0.75726, 0, 0], - "57367": [0.25142, 0.75726, 0, 0], - "57368": [0.25142, 0.75726, 0, 0], - "57369": [0.25142, 0.75726, 0, 0], - "57370": [0.13597, 0.63597, 0, 0], - "57371": [0.13597, 0.63597, 0, 0] - }, - "Caligraphic-Regular": { - "48": [0, 0.43056, 0, 0], - "49": [0, 0.43056, 0, 0], - "50": [0, 0.43056, 0, 0], - "51": [0.19444, 0.43056, 0, 0], - "52": [0.19444, 0.43056, 0, 0], - "53": [0.19444, 0.43056, 0, 0], - "54": [0, 0.64444, 0, 0], - "55": [0.19444, 0.43056, 0, 0], - "56": [0, 0.64444, 0, 0], - "57": [0.19444, 0.43056, 0, 0], - "65": [0, 0.68333, 0, 0.19445], - "66": [0, 0.68333, 0.03041, 0.13889], - "67": [0, 0.68333, 0.05834, 0.13889], - "68": [0, 0.68333, 0.02778, 0.08334], - "69": [0, 0.68333, 0.08944, 0.11111], - "70": [0, 0.68333, 0.09931, 0.11111], - "71": [0.09722, 0.68333, 0.0593, 0.11111], - "72": [0, 0.68333, 0.00965, 0.11111], - "73": [0, 0.68333, 0.07382, 0], - "74": [0.09722, 0.68333, 0.18472, 0.16667], - "75": [0, 0.68333, 0.01445, 0.05556], - "76": [0, 0.68333, 0, 0.13889], - "77": [0, 0.68333, 0, 0.13889], - "78": [0, 0.68333, 0.14736, 0.08334], - "79": [0, 0.68333, 0.02778, 0.11111], - "80": [0, 0.68333, 0.08222, 0.08334], - "81": [0.09722, 0.68333, 0, 0.11111], - "82": [0, 0.68333, 0, 0.08334], - "83": [0, 0.68333, 0.075, 0.13889], - "84": [0, 0.68333, 0.25417, 0], - "85": [0, 0.68333, 0.09931, 0.08334], - "86": [0, 0.68333, 0.08222, 0], - "87": [0, 0.68333, 0.08222, 0.08334], - "88": [0, 0.68333, 0.14643, 0.13889], - "89": [0.09722, 0.68333, 0.08222, 0.08334], - "90": [0, 0.68333, 0.07944, 0.13889] - }, - "Fraktur-Regular": { - "33": [0, 0.69141, 0, 0], - "34": [0, 0.69141, 0, 0], - "38": [0, 0.69141, 0, 0], - "39": [0, 0.69141, 0, 0], - "40": [0.24982, 0.74947, 0, 0], - "41": [0.24982, 0.74947, 0, 0], - "42": [0, 0.62119, 0, 0], - "43": [0.08319, 0.58283, 0, 0], - "44": [0, 0.10803, 0, 0], - "45": [0.08319, 0.58283, 0, 0], - "46": [0, 0.10803, 0, 0], - "47": [0.24982, 0.74947, 0, 0], - "48": [0, 0.47534, 0, 0], - "49": [0, 0.47534, 0, 0], - "50": [0, 0.47534, 0, 0], - "51": [0.18906, 0.47534, 0, 0], - "52": [0.18906, 0.47534, 0, 0], - "53": [0.18906, 0.47534, 0, 0], - "54": [0, 0.69141, 0, 0], - "55": [0.18906, 0.47534, 0, 0], - "56": [0, 0.69141, 0, 0], - "57": [0.18906, 0.47534, 0, 0], - "58": [0, 0.47534, 0, 0], - "59": [0.12604, 0.47534, 0, 0], - "61": [-0.13099, 0.36866, 0, 0], - "63": [0, 0.69141, 0, 0], - "65": [0, 0.69141, 0, 0], - "66": [0, 0.69141, 0, 0], - "67": [0, 0.69141, 0, 0], - "68": [0, 0.69141, 0, 0], - "69": [0, 0.69141, 0, 0], - "70": [0.12604, 0.69141, 0, 0], - "71": [0, 0.69141, 0, 0], - "72": [0.06302, 0.69141, 0, 0], - "73": [0, 0.69141, 0, 0], - "74": [0.12604, 0.69141, 0, 0], - "75": [0, 0.69141, 0, 0], - "76": [0, 0.69141, 0, 0], - "77": [0, 0.69141, 0, 0], - "78": [0, 0.69141, 0, 0], - "79": [0, 0.69141, 0, 0], - "80": [0.18906, 0.69141, 0, 0], - "81": [0.03781, 0.69141, 0, 0], - "82": [0, 0.69141, 0, 0], - "83": [0, 0.69141, 0, 0], - "84": [0, 0.69141, 0, 0], - "85": [0, 0.69141, 0, 0], - "86": [0, 0.69141, 0, 0], - "87": [0, 0.69141, 0, 0], - "88": [0, 0.69141, 0, 0], - "89": [0.18906, 0.69141, 0, 0], - "90": [0.12604, 0.69141, 0, 0], - "91": [0.24982, 0.74947, 0, 0], - "93": [0.24982, 0.74947, 0, 0], - "94": [0, 0.69141, 0, 0], - "97": [0, 0.47534, 0, 0], - "98": [0, 0.69141, 0, 0], - "99": [0, 0.47534, 0, 0], - "100": [0, 0.62119, 0, 0], - "101": [0, 0.47534, 0, 0], - "102": [0.18906, 0.69141, 0, 0], - "103": [0.18906, 0.47534, 0, 0], - "104": [0.18906, 0.69141, 0, 0], - "105": [0, 0.69141, 0, 0], - "106": [0, 0.69141, 0, 0], - "107": [0, 0.69141, 0, 0], - "108": [0, 0.69141, 0, 0], - "109": [0, 0.47534, 0, 0], - "110": [0, 0.47534, 0, 0], - "111": [0, 0.47534, 0, 0], - "112": [0.18906, 0.52396, 0, 0], - "113": [0.18906, 0.47534, 0, 0], - "114": [0, 0.47534, 0, 0], - "115": [0, 0.47534, 0, 0], - "116": [0, 0.62119, 0, 0], - "117": [0, 0.47534, 0, 0], - "118": [0, 0.52396, 0, 0], - "119": [0, 0.52396, 0, 0], - "120": [0.18906, 0.47534, 0, 0], - "121": [0.18906, 0.47534, 0, 0], - "122": [0.18906, 0.47534, 0, 0], - "8216": [0, 0.69141, 0, 0], - "8217": [0, 0.69141, 0, 0], - "58112": [0, 0.62119, 0, 0], - "58113": [0, 0.62119, 0, 0], - "58114": [0.18906, 0.69141, 0, 0], - "58115": [0.18906, 0.69141, 0, 0], - "58116": [0.18906, 0.47534, 0, 0], - "58117": [0, 0.69141, 0, 0], - "58118": [0, 0.62119, 0, 0], - "58119": [0, 0.47534, 0, 0] - }, - "Main-Bold": { - "33": [0, 0.69444, 0, 0], - "34": [0, 0.69444, 0, 0], - "35": [0.19444, 0.69444, 0, 0], - "36": [0.05556, 0.75, 0, 0], - "37": [0.05556, 0.75, 0, 0], - "38": [0, 0.69444, 0, 0], - "39": [0, 0.69444, 0, 0], - "40": [0.25, 0.75, 0, 0], - "41": [0.25, 0.75, 0, 0], - "42": [0, 0.75, 0, 0], - "43": [0.13333, 0.63333, 0, 0], - "44": [0.19444, 0.15556, 0, 0], - "45": [0, 0.44444, 0, 0], - "46": [0, 0.15556, 0, 0], - "47": [0.25, 0.75, 0, 0], - "48": [0, 0.64444, 0, 0], - "49": [0, 0.64444, 0, 0], - "50": [0, 0.64444, 0, 0], - "51": [0, 0.64444, 0, 0], - "52": [0, 0.64444, 0, 0], - "53": [0, 0.64444, 0, 0], - "54": [0, 0.64444, 0, 0], - "55": [0, 0.64444, 0, 0], - "56": [0, 0.64444, 0, 0], - "57": [0, 0.64444, 0, 0], - "58": [0, 0.44444, 0, 0], - "59": [0.19444, 0.44444, 0, 0], - "60": [0.08556, 0.58556, 0, 0], - "61": [-0.10889, 0.39111, 0, 0], - "62": [0.08556, 0.58556, 0, 0], - "63": [0, 0.69444, 0, 0], - "64": [0, 0.69444, 0, 0], - "65": [0, 0.68611, 0, 0], - "66": [0, 0.68611, 0, 0], - "67": [0, 0.68611, 0, 0], - "68": [0, 0.68611, 0, 0], - "69": [0, 0.68611, 0, 0], - "70": [0, 0.68611, 0, 0], - "71": [0, 0.68611, 0, 0], - "72": [0, 0.68611, 0, 0], - "73": [0, 0.68611, 0, 0], - "74": [0, 0.68611, 0, 0], - "75": [0, 0.68611, 0, 0], - "76": [0, 0.68611, 0, 0], - "77": [0, 0.68611, 0, 0], - "78": [0, 0.68611, 0, 0], - "79": [0, 0.68611, 0, 0], - "80": [0, 0.68611, 0, 0], - "81": [0.19444, 0.68611, 0, 0], - "82": [0, 0.68611, 0, 0], - "83": [0, 0.68611, 0, 0], - "84": [0, 0.68611, 0, 0], - "85": [0, 0.68611, 0, 0], - "86": [0, 0.68611, 0.01597, 0], - "87": [0, 0.68611, 0.01597, 0], - "88": [0, 0.68611, 0, 0], - "89": [0, 0.68611, 0.02875, 0], - "90": [0, 0.68611, 0, 0], - "91": [0.25, 0.75, 0, 0], - "92": [0.25, 0.75, 0, 0], - "93": [0.25, 0.75, 0, 0], - "94": [0, 0.69444, 0, 0], - "95": [0.31, 0.13444, 0.03194, 0], - "96": [0, 0.69444, 0, 0], - "97": [0, 0.44444, 0, 0], - "98": [0, 0.69444, 0, 0], - "99": [0, 0.44444, 0, 0], - "100": [0, 0.69444, 0, 0], - "101": [0, 0.44444, 0, 0], - "102": [0, 0.69444, 0.10903, 0], - "103": [0.19444, 0.44444, 0.01597, 0], - "104": [0, 0.69444, 0, 0], - "105": [0, 0.69444, 0, 0], - "106": [0.19444, 0.69444, 0, 0], - "107": [0, 0.69444, 0, 0], - "108": [0, 0.69444, 0, 0], - "109": [0, 0.44444, 0, 0], - "110": [0, 0.44444, 0, 0], - "111": [0, 0.44444, 0, 0], - "112": [0.19444, 0.44444, 0, 0], - "113": [0.19444, 0.44444, 0, 0], - "114": [0, 0.44444, 0, 0], - "115": [0, 0.44444, 0, 0], - "116": [0, 0.63492, 0, 0], - "117": [0, 0.44444, 0, 0], - "118": [0, 0.44444, 0.01597, 0], - "119": [0, 0.44444, 0.01597, 0], - "120": [0, 0.44444, 0, 0], - "121": [0.19444, 0.44444, 0.01597, 0], - "122": [0, 0.44444, 0, 0], - "123": [0.25, 0.75, 0, 0], - "124": [0.25, 0.75, 0, 0], - "125": [0.25, 0.75, 0, 0], - "126": [0.35, 0.34444, 0, 0], - "168": [0, 0.69444, 0, 0], - "172": [0, 0.44444, 0, 0], - "175": [0, 0.59611, 0, 0], - "176": [0, 0.69444, 0, 0], - "177": [0.13333, 0.63333, 0, 0], - "180": [0, 0.69444, 0, 0], - "215": [0.13333, 0.63333, 0, 0], - "247": [0.13333, 0.63333, 0, 0], - "305": [0, 0.44444, 0, 0], - "567": [0.19444, 0.44444, 0, 0], - "710": [0, 0.69444, 0, 0], - "711": [0, 0.63194, 0, 0], - "713": [0, 0.59611, 0, 0], - "714": [0, 0.69444, 0, 0], - "715": [0, 0.69444, 0, 0], - "728": [0, 0.69444, 0, 0], - "729": [0, 0.69444, 0, 0], - "730": [0, 0.69444, 0, 0], - "732": [0, 0.69444, 0, 0], - "768": [0, 0.69444, 0, 0], - "769": [0, 0.69444, 0, 0], - "770": [0, 0.69444, 0, 0], - "771": [0, 0.69444, 0, 0], - "772": [0, 0.59611, 0, 0], - "774": [0, 0.69444, 0, 0], - "775": [0, 0.69444, 0, 0], - "776": [0, 0.69444, 0, 0], - "778": [0, 0.69444, 0, 0], - "779": [0, 0.69444, 0, 0], - "780": [0, 0.63194, 0, 0], - "824": [0.19444, 0.69444, 0, 0], - "915": [0, 0.68611, 0, 0], - "916": [0, 0.68611, 0, 0], - "920": [0, 0.68611, 0, 0], - "923": [0, 0.68611, 0, 0], - "926": [0, 0.68611, 0, 0], - "928": [0, 0.68611, 0, 0], - "931": [0, 0.68611, 0, 0], - "933": [0, 0.68611, 0, 0], - "934": [0, 0.68611, 0, 0], - "936": [0, 0.68611, 0, 0], - "937": [0, 0.68611, 0, 0], - "8211": [0, 0.44444, 0.03194, 0], - "8212": [0, 0.44444, 0.03194, 0], - "8216": [0, 0.69444, 0, 0], - "8217": [0, 0.69444, 0, 0], - "8220": [0, 0.69444, 0, 0], - "8221": [0, 0.69444, 0, 0], - "8224": [0.19444, 0.69444, 0, 0], - "8225": [0.19444, 0.69444, 0, 0], - "8242": [0, 0.55556, 0, 0], - "8407": [0, 0.72444, 0.15486, 0], - "8463": [0, 0.69444, 0, 0], - "8465": [0, 0.69444, 0, 0], - "8467": [0, 0.69444, 0, 0], - "8472": [0.19444, 0.44444, 0, 0], - "8476": [0, 0.69444, 0, 0], - "8501": [0, 0.69444, 0, 0], - "8592": [-0.10889, 0.39111, 0, 0], - "8593": [0.19444, 0.69444, 0, 0], - "8594": [-0.10889, 0.39111, 0, 0], - "8595": [0.19444, 0.69444, 0, 0], - "8596": [-0.10889, 0.39111, 0, 0], - "8597": [0.25, 0.75, 0, 0], - "8598": [0.19444, 0.69444, 0, 0], - "8599": [0.19444, 0.69444, 0, 0], - "8600": [0.19444, 0.69444, 0, 0], - "8601": [0.19444, 0.69444, 0, 0], - "8636": [-0.10889, 0.39111, 0, 0], - "8637": [-0.10889, 0.39111, 0, 0], - "8640": [-0.10889, 0.39111, 0, 0], - "8641": [-0.10889, 0.39111, 0, 0], - "8656": [-0.10889, 0.39111, 0, 0], - "8657": [0.19444, 0.69444, 0, 0], - "8658": [-0.10889, 0.39111, 0, 0], - "8659": [0.19444, 0.69444, 0, 0], - "8660": [-0.10889, 0.39111, 0, 0], - "8661": [0.25, 0.75, 0, 0], - "8704": [0, 0.69444, 0, 0], - "8706": [0, 0.69444, 0.06389, 0], - "8707": [0, 0.69444, 0, 0], - "8709": [0.05556, 0.75, 0, 0], - "8711": [0, 0.68611, 0, 0], - "8712": [0.08556, 0.58556, 0, 0], - "8715": [0.08556, 0.58556, 0, 0], - "8722": [0.13333, 0.63333, 0, 0], - "8723": [0.13333, 0.63333, 0, 0], - "8725": [0.25, 0.75, 0, 0], - "8726": [0.25, 0.75, 0, 0], - "8727": [-0.02778, 0.47222, 0, 0], - "8728": [-0.02639, 0.47361, 0, 0], - "8729": [-0.02639, 0.47361, 0, 0], - "8730": [0.18, 0.82, 0, 0], - "8733": [0, 0.44444, 0, 0], - "8734": [0, 0.44444, 0, 0], - "8736": [0, 0.69224, 0, 0], - "8739": [0.25, 0.75, 0, 0], - "8741": [0.25, 0.75, 0, 0], - "8743": [0, 0.55556, 0, 0], - "8744": [0, 0.55556, 0, 0], - "8745": [0, 0.55556, 0, 0], - "8746": [0, 0.55556, 0, 0], - "8747": [0.19444, 0.69444, 0.12778, 0], - "8764": [-0.10889, 0.39111, 0, 0], - "8768": [0.19444, 0.69444, 0, 0], - "8771": [0.00222, 0.50222, 0, 0], - "8776": [0.02444, 0.52444, 0, 0], - "8781": [0.00222, 0.50222, 0, 0], - "8801": [0.00222, 0.50222, 0, 0], - "8804": [0.19667, 0.69667, 0, 0], - "8805": [0.19667, 0.69667, 0, 0], - "8810": [0.08556, 0.58556, 0, 0], - "8811": [0.08556, 0.58556, 0, 0], - "8826": [0.08556, 0.58556, 0, 0], - "8827": [0.08556, 0.58556, 0, 0], - "8834": [0.08556, 0.58556, 0, 0], - "8835": [0.08556, 0.58556, 0, 0], - "8838": [0.19667, 0.69667, 0, 0], - "8839": [0.19667, 0.69667, 0, 0], - "8846": [0, 0.55556, 0, 0], - "8849": [0.19667, 0.69667, 0, 0], - "8850": [0.19667, 0.69667, 0, 0], - "8851": [0, 0.55556, 0, 0], - "8852": [0, 0.55556, 0, 0], - "8853": [0.13333, 0.63333, 0, 0], - "8854": [0.13333, 0.63333, 0, 0], - "8855": [0.13333, 0.63333, 0, 0], - "8856": [0.13333, 0.63333, 0, 0], - "8857": [0.13333, 0.63333, 0, 0], - "8866": [0, 0.69444, 0, 0], - "8867": [0, 0.69444, 0, 0], - "8868": [0, 0.69444, 0, 0], - "8869": [0, 0.69444, 0, 0], - "8900": [-0.02639, 0.47361, 0, 0], - "8901": [-0.02639, 0.47361, 0, 0], - "8902": [-0.02778, 0.47222, 0, 0], - "8968": [0.25, 0.75, 0, 0], - "8969": [0.25, 0.75, 0, 0], - "8970": [0.25, 0.75, 0, 0], - "8971": [0.25, 0.75, 0, 0], - "8994": [-0.13889, 0.36111, 0, 0], - "8995": [-0.13889, 0.36111, 0, 0], - "9651": [0.19444, 0.69444, 0, 0], - "9657": [-0.02778, 0.47222, 0, 0], - "9661": [0.19444, 0.69444, 0, 0], - "9667": [-0.02778, 0.47222, 0, 0], - "9711": [0.19444, 0.69444, 0, 0], - "9824": [0.12963, 0.69444, 0, 0], - "9825": [0.12963, 0.69444, 0, 0], - "9826": [0.12963, 0.69444, 0, 0], - "9827": [0.12963, 0.69444, 0, 0], - "9837": [0, 0.75, 0, 0], - "9838": [0.19444, 0.69444, 0, 0], - "9839": [0.19444, 0.69444, 0, 0], - "10216": [0.25, 0.75, 0, 0], - "10217": [0.25, 0.75, 0, 0], - "10815": [0, 0.68611, 0, 0], - "10927": [0.19667, 0.69667, 0, 0], - "10928": [0.19667, 0.69667, 0, 0] - }, - "Main-Italic": { - "33": [0, 0.69444, 0.12417, 0], - "34": [0, 0.69444, 0.06961, 0], - "35": [0.19444, 0.69444, 0.06616, 0], - "37": [0.05556, 0.75, 0.13639, 0], - "38": [0, 0.69444, 0.09694, 0], - "39": [0, 0.69444, 0.12417, 0], - "40": [0.25, 0.75, 0.16194, 0], - "41": [0.25, 0.75, 0.03694, 0], - "42": [0, 0.75, 0.14917, 0], - "43": [0.05667, 0.56167, 0.03694, 0], - "44": [0.19444, 0.10556, 0, 0], - "45": [0, 0.43056, 0.02826, 0], - "46": [0, 0.10556, 0, 0], - "47": [0.25, 0.75, 0.16194, 0], - "48": [0, 0.64444, 0.13556, 0], - "49": [0, 0.64444, 0.13556, 0], - "50": [0, 0.64444, 0.13556, 0], - "51": [0, 0.64444, 0.13556, 0], - "52": [0.19444, 0.64444, 0.13556, 0], - "53": [0, 0.64444, 0.13556, 0], - "54": [0, 0.64444, 0.13556, 0], - "55": [0.19444, 0.64444, 0.13556, 0], - "56": [0, 0.64444, 0.13556, 0], - "57": [0, 0.64444, 0.13556, 0], - "58": [0, 0.43056, 0.0582, 0], - "59": [0.19444, 0.43056, 0.0582, 0], - "61": [-0.13313, 0.36687, 0.06616, 0], - "63": [0, 0.69444, 0.1225, 0], - "64": [0, 0.69444, 0.09597, 0], - "65": [0, 0.68333, 0, 0], - "66": [0, 0.68333, 0.10257, 0], - "67": [0, 0.68333, 0.14528, 0], - "68": [0, 0.68333, 0.09403, 0], - "69": [0, 0.68333, 0.12028, 0], - "70": [0, 0.68333, 0.13305, 0], - "71": [0, 0.68333, 0.08722, 0], - "72": [0, 0.68333, 0.16389, 0], - "73": [0, 0.68333, 0.15806, 0], - "74": [0, 0.68333, 0.14028, 0], - "75": [0, 0.68333, 0.14528, 0], - "76": [0, 0.68333, 0, 0], - "77": [0, 0.68333, 0.16389, 0], - "78": [0, 0.68333, 0.16389, 0], - "79": [0, 0.68333, 0.09403, 0], - "80": [0, 0.68333, 0.10257, 0], - "81": [0.19444, 0.68333, 0.09403, 0], - "82": [0, 0.68333, 0.03868, 0], - "83": [0, 0.68333, 0.11972, 0], - "84": [0, 0.68333, 0.13305, 0], - "85": [0, 0.68333, 0.16389, 0], - "86": [0, 0.68333, 0.18361, 0], - "87": [0, 0.68333, 0.18361, 0], - "88": [0, 0.68333, 0.15806, 0], - "89": [0, 0.68333, 0.19383, 0], - "90": [0, 0.68333, 0.14528, 0], - "91": [0.25, 0.75, 0.1875, 0], - "93": [0.25, 0.75, 0.10528, 0], - "94": [0, 0.69444, 0.06646, 0], - "95": [0.31, 0.12056, 0.09208, 0], - "97": [0, 0.43056, 0.07671, 0], - "98": [0, 0.69444, 0.06312, 0], - "99": [0, 0.43056, 0.05653, 0], - "100": [0, 0.69444, 0.10333, 0], - "101": [0, 0.43056, 0.07514, 0], - "102": [0.19444, 0.69444, 0.21194, 0], - "103": [0.19444, 0.43056, 0.08847, 0], - "104": [0, 0.69444, 0.07671, 0], - "105": [0, 0.65536, 0.1019, 0], - "106": [0.19444, 0.65536, 0.14467, 0], - "107": [0, 0.69444, 0.10764, 0], - "108": [0, 0.69444, 0.10333, 0], - "109": [0, 0.43056, 0.07671, 0], - "110": [0, 0.43056, 0.07671, 0], - "111": [0, 0.43056, 0.06312, 0], - "112": [0.19444, 0.43056, 0.06312, 0], - "113": [0.19444, 0.43056, 0.08847, 0], - "114": [0, 0.43056, 0.10764, 0], - "115": [0, 0.43056, 0.08208, 0], - "116": [0, 0.61508, 0.09486, 0], - "117": [0, 0.43056, 0.07671, 0], - "118": [0, 0.43056, 0.10764, 0], - "119": [0, 0.43056, 0.10764, 0], - "120": [0, 0.43056, 0.12042, 0], - "121": [0.19444, 0.43056, 0.08847, 0], - "122": [0, 0.43056, 0.12292, 0], - "126": [0.35, 0.31786, 0.11585, 0], - "163": [0, 0.69444, 0, 0], - "305": [0, 0.43056, 0, 0.02778], - "567": [0.19444, 0.43056, 0, 0.08334], - "768": [0, 0.69444, 0, 0], - "769": [0, 0.69444, 0.09694, 0], - "770": [0, 0.69444, 0.06646, 0], - "771": [0, 0.66786, 0.11585, 0], - "772": [0, 0.56167, 0.10333, 0], - "774": [0, 0.69444, 0.10806, 0], - "775": [0, 0.66786, 0.11752, 0], - "776": [0, 0.66786, 0.10474, 0], - "778": [0, 0.69444, 0, 0], - "779": [0, 0.69444, 0.1225, 0], - "780": [0, 0.62847, 0.08295, 0], - "915": [0, 0.68333, 0.13305, 0], - "916": [0, 0.68333, 0, 0], - "920": [0, 0.68333, 0.09403, 0], - "923": [0, 0.68333, 0, 0], - "926": [0, 0.68333, 0.15294, 0], - "928": [0, 0.68333, 0.16389, 0], - "931": [0, 0.68333, 0.12028, 0], - "933": [0, 0.68333, 0.11111, 0], - "934": [0, 0.68333, 0.05986, 0], - "936": [0, 0.68333, 0.11111, 0], - "937": [0, 0.68333, 0.10257, 0], - "8211": [0, 0.43056, 0.09208, 0], - "8212": [0, 0.43056, 0.09208, 0], - "8216": [0, 0.69444, 0.12417, 0], - "8217": [0, 0.69444, 0.12417, 0], - "8220": [0, 0.69444, 0.1685, 0], - "8221": [0, 0.69444, 0.06961, 0], - "8463": [0, 0.68889, 0, 0] - }, - "Main-Regular": { - "32": [0, 0, 0, 0], - "33": [0, 0.69444, 0, 0], - "34": [0, 0.69444, 0, 0], - "35": [0.19444, 0.69444, 0, 0], - "36": [0.05556, 0.75, 0, 0], - "37": [0.05556, 0.75, 0, 0], - "38": [0, 0.69444, 0, 0], - "39": [0, 0.69444, 0, 0], - "40": [0.25, 0.75, 0, 0], - "41": [0.25, 0.75, 0, 0], - "42": [0, 0.75, 0, 0], - "43": [0.08333, 0.58333, 0, 0], - "44": [0.19444, 0.10556, 0, 0], - "45": [0, 0.43056, 0, 0], - "46": [0, 0.10556, 0, 0], - "47": [0.25, 0.75, 0, 0], - "48": [0, 0.64444, 0, 0], - "49": [0, 0.64444, 0, 0], - "50": [0, 0.64444, 0, 0], - "51": [0, 0.64444, 0, 0], - "52": [0, 0.64444, 0, 0], - "53": [0, 0.64444, 0, 0], - "54": [0, 0.64444, 0, 0], - "55": [0, 0.64444, 0, 0], - "56": [0, 0.64444, 0, 0], - "57": [0, 0.64444, 0, 0], - "58": [0, 0.43056, 0, 0], - "59": [0.19444, 0.43056, 0, 0], - "60": [0.0391, 0.5391, 0, 0], - "61": [-0.13313, 0.36687, 0, 0], - "62": [0.0391, 0.5391, 0, 0], - "63": [0, 0.69444, 0, 0], - "64": [0, 0.69444, 0, 0], - "65": [0, 0.68333, 0, 0], - "66": [0, 0.68333, 0, 0], - "67": [0, 0.68333, 0, 0], - "68": [0, 0.68333, 0, 0], - "69": [0, 0.68333, 0, 0], - "70": [0, 0.68333, 0, 0], - "71": [0, 0.68333, 0, 0], - "72": [0, 0.68333, 0, 0], - "73": [0, 0.68333, 0, 0], - "74": [0, 0.68333, 0, 0], - "75": [0, 0.68333, 0, 0], - "76": [0, 0.68333, 0, 0], - "77": [0, 0.68333, 0, 0], - "78": [0, 0.68333, 0, 0], - "79": [0, 0.68333, 0, 0], - "80": [0, 0.68333, 0, 0], - "81": [0.19444, 0.68333, 0, 0], - "82": [0, 0.68333, 0, 0], - "83": [0, 0.68333, 0, 0], - "84": [0, 0.68333, 0, 0], - "85": [0, 0.68333, 0, 0], - "86": [0, 0.68333, 0.01389, 0], - "87": [0, 0.68333, 0.01389, 0], - "88": [0, 0.68333, 0, 0], - "89": [0, 0.68333, 0.025, 0], - "90": [0, 0.68333, 0, 0], - "91": [0.25, 0.75, 0, 0], - "92": [0.25, 0.75, 0, 0], - "93": [0.25, 0.75, 0, 0], - "94": [0, 0.69444, 0, 0], - "95": [0.31, 0.12056, 0.02778, 0], - "96": [0, 0.69444, 0, 0], - "97": [0, 0.43056, 0, 0], - "98": [0, 0.69444, 0, 0], - "99": [0, 0.43056, 0, 0], - "100": [0, 0.69444, 0, 0], - "101": [0, 0.43056, 0, 0], - "102": [0, 0.69444, 0.07778, 0], - "103": [0.19444, 0.43056, 0.01389, 0], - "104": [0, 0.69444, 0, 0], - "105": [0, 0.66786, 0, 0], - "106": [0.19444, 0.66786, 0, 0], - "107": [0, 0.69444, 0, 0], - "108": [0, 0.69444, 0, 0], - "109": [0, 0.43056, 0, 0], - "110": [0, 0.43056, 0, 0], - "111": [0, 0.43056, 0, 0], - "112": [0.19444, 0.43056, 0, 0], - "113": [0.19444, 0.43056, 0, 0], - "114": [0, 0.43056, 0, 0], - "115": [0, 0.43056, 0, 0], - "116": [0, 0.61508, 0, 0], - "117": [0, 0.43056, 0, 0], - "118": [0, 0.43056, 0.01389, 0], - "119": [0, 0.43056, 0.01389, 0], - "120": [0, 0.43056, 0, 0], - "121": [0.19444, 0.43056, 0.01389, 0], - "122": [0, 0.43056, 0, 0], - "123": [0.25, 0.75, 0, 0], - "124": [0.25, 0.75, 0, 0], - "125": [0.25, 0.75, 0, 0], - "126": [0.35, 0.31786, 0, 0], - "160": [0, 0, 0, 0], - "168": [0, 0.66786, 0, 0], - "172": [0, 0.43056, 0, 0], - "175": [0, 0.56778, 0, 0], - "176": [0, 0.69444, 0, 0], - "177": [0.08333, 0.58333, 0, 0], - "180": [0, 0.69444, 0, 0], - "215": [0.08333, 0.58333, 0, 0], - "247": [0.08333, 0.58333, 0, 0], - "305": [0, 0.43056, 0, 0], - "567": [0.19444, 0.43056, 0, 0], - "710": [0, 0.69444, 0, 0], - "711": [0, 0.62847, 0, 0], - "713": [0, 0.56778, 0, 0], - "714": [0, 0.69444, 0, 0], - "715": [0, 0.69444, 0, 0], - "728": [0, 0.69444, 0, 0], - "729": [0, 0.66786, 0, 0], - "730": [0, 0.69444, 0, 0], - "732": [0, 0.66786, 0, 0], - "768": [0, 0.69444, 0, 0], - "769": [0, 0.69444, 0, 0], - "770": [0, 0.69444, 0, 0], - "771": [0, 0.66786, 0, 0], - "772": [0, 0.56778, 0, 0], - "774": [0, 0.69444, 0, 0], - "775": [0, 0.66786, 0, 0], - "776": [0, 0.66786, 0, 0], - "778": [0, 0.69444, 0, 0], - "779": [0, 0.69444, 0, 0], - "780": [0, 0.62847, 0, 0], - "824": [0.19444, 0.69444, 0, 0], - "915": [0, 0.68333, 0, 0], - "916": [0, 0.68333, 0, 0], - "920": [0, 0.68333, 0, 0], - "923": [0, 0.68333, 0, 0], - "926": [0, 0.68333, 0, 0], - "928": [0, 0.68333, 0, 0], - "931": [0, 0.68333, 0, 0], - "933": [0, 0.68333, 0, 0], - "934": [0, 0.68333, 0, 0], - "936": [0, 0.68333, 0, 0], - "937": [0, 0.68333, 0, 0], - "8211": [0, 0.43056, 0.02778, 0], - "8212": [0, 0.43056, 0.02778, 0], - "8216": [0, 0.69444, 0, 0], - "8217": [0, 0.69444, 0, 0], - "8220": [0, 0.69444, 0, 0], - "8221": [0, 0.69444, 0, 0], - "8224": [0.19444, 0.69444, 0, 0], - "8225": [0.19444, 0.69444, 0, 0], - "8230": [0, 0.12, 0, 0], - "8242": [0, 0.55556, 0, 0], - "8407": [0, 0.71444, 0.15382, 0], - "8463": [0, 0.68889, 0, 0], - "8465": [0, 0.69444, 0, 0], - "8467": [0, 0.69444, 0, 0.11111], - "8472": [0.19444, 0.43056, 0, 0.11111], - "8476": [0, 0.69444, 0, 0], - "8501": [0, 0.69444, 0, 0], - "8592": [-0.13313, 0.36687, 0, 0], - "8593": [0.19444, 0.69444, 0, 0], - "8594": [-0.13313, 0.36687, 0, 0], - "8595": [0.19444, 0.69444, 0, 0], - "8596": [-0.13313, 0.36687, 0, 0], - "8597": [0.25, 0.75, 0, 0], - "8598": [0.19444, 0.69444, 0, 0], - "8599": [0.19444, 0.69444, 0, 0], - "8600": [0.19444, 0.69444, 0, 0], - "8601": [0.19444, 0.69444, 0, 0], - "8614": [0.011, 0.511, 0, 0], - "8617": [0.011, 0.511, 0, 0], - "8618": [0.011, 0.511, 0, 0], - "8636": [-0.13313, 0.36687, 0, 0], - "8637": [-0.13313, 0.36687, 0, 0], - "8640": [-0.13313, 0.36687, 0, 0], - "8641": [-0.13313, 0.36687, 0, 0], - "8652": [0.011, 0.671, 0, 0], - "8656": [-0.13313, 0.36687, 0, 0], - "8657": [0.19444, 0.69444, 0, 0], - "8658": [-0.13313, 0.36687, 0, 0], - "8659": [0.19444, 0.69444, 0, 0], - "8660": [-0.13313, 0.36687, 0, 0], - "8661": [0.25, 0.75, 0, 0], - "8704": [0, 0.69444, 0, 0], - "8706": [0, 0.69444, 0.05556, 0.08334], - "8707": [0, 0.69444, 0, 0], - "8709": [0.05556, 0.75, 0, 0], - "8711": [0, 0.68333, 0, 0], - "8712": [0.0391, 0.5391, 0, 0], - "8715": [0.0391, 0.5391, 0, 0], - "8722": [0.08333, 0.58333, 0, 0], - "8723": [0.08333, 0.58333, 0, 0], - "8725": [0.25, 0.75, 0, 0], - "8726": [0.25, 0.75, 0, 0], - "8727": [-0.03472, 0.46528, 0, 0], - "8728": [-0.05555, 0.44445, 0, 0], - "8729": [-0.05555, 0.44445, 0, 0], - "8730": [0.2, 0.8, 0, 0], - "8733": [0, 0.43056, 0, 0], - "8734": [0, 0.43056, 0, 0], - "8736": [0, 0.69224, 0, 0], - "8739": [0.25, 0.75, 0, 0], - "8741": [0.25, 0.75, 0, 0], - "8743": [0, 0.55556, 0, 0], - "8744": [0, 0.55556, 0, 0], - "8745": [0, 0.55556, 0, 0], - "8746": [0, 0.55556, 0, 0], - "8747": [0.19444, 0.69444, 0.11111, 0], - "8764": [-0.13313, 0.36687, 0, 0], - "8768": [0.19444, 0.69444, 0, 0], - "8771": [-0.03625, 0.46375, 0, 0], - "8773": [-0.022, 0.589, 0, 0], - "8776": [-0.01688, 0.48312, 0, 0], - "8781": [-0.03625, 0.46375, 0, 0], - "8784": [-0.133, 0.67, 0, 0], - "8800": [0.215, 0.716, 0, 0], - "8801": [-0.03625, 0.46375, 0, 0], - "8804": [0.13597, 0.63597, 0, 0], - "8805": [0.13597, 0.63597, 0, 0], - "8810": [0.0391, 0.5391, 0, 0], - "8811": [0.0391, 0.5391, 0, 0], - "8826": [0.0391, 0.5391, 0, 0], - "8827": [0.0391, 0.5391, 0, 0], - "8834": [0.0391, 0.5391, 0, 0], - "8835": [0.0391, 0.5391, 0, 0], - "8838": [0.13597, 0.63597, 0, 0], - "8839": [0.13597, 0.63597, 0, 0], - "8846": [0, 0.55556, 0, 0], - "8849": [0.13597, 0.63597, 0, 0], - "8850": [0.13597, 0.63597, 0, 0], - "8851": [0, 0.55556, 0, 0], - "8852": [0, 0.55556, 0, 0], - "8853": [0.08333, 0.58333, 0, 0], - "8854": [0.08333, 0.58333, 0, 0], - "8855": [0.08333, 0.58333, 0, 0], - "8856": [0.08333, 0.58333, 0, 0], - "8857": [0.08333, 0.58333, 0, 0], - "8866": [0, 0.69444, 0, 0], - "8867": [0, 0.69444, 0, 0], - "8868": [0, 0.69444, 0, 0], - "8869": [0, 0.69444, 0, 0], - "8872": [0.249, 0.75, 0, 0], - "8900": [-0.05555, 0.44445, 0, 0], - "8901": [-0.05555, 0.44445, 0, 0], - "8902": [-0.03472, 0.46528, 0, 0], - "8904": [0.005, 0.505, 0, 0], - "8942": [0.03, 0.9, 0, 0], - "8943": [-0.19, 0.31, 0, 0], - "8945": [-0.1, 0.82, 0, 0], - "8968": [0.25, 0.75, 0, 0], - "8969": [0.25, 0.75, 0, 0], - "8970": [0.25, 0.75, 0, 0], - "8971": [0.25, 0.75, 0, 0], - "8994": [-0.14236, 0.35764, 0, 0], - "8995": [-0.14236, 0.35764, 0, 0], - "9136": [0.244, 0.744, 0, 0], - "9137": [0.244, 0.744, 0, 0], - "9651": [0.19444, 0.69444, 0, 0], - "9657": [-0.03472, 0.46528, 0, 0], - "9661": [0.19444, 0.69444, 0, 0], - "9667": [-0.03472, 0.46528, 0, 0], - "9711": [0.19444, 0.69444, 0, 0], - "9824": [0.12963, 0.69444, 0, 0], - "9825": [0.12963, 0.69444, 0, 0], - "9826": [0.12963, 0.69444, 0, 0], - "9827": [0.12963, 0.69444, 0, 0], - "9837": [0, 0.75, 0, 0], - "9838": [0.19444, 0.69444, 0, 0], - "9839": [0.19444, 0.69444, 0, 0], - "10216": [0.25, 0.75, 0, 0], - "10217": [0.25, 0.75, 0, 0], - "10222": [0.244, 0.744, 0, 0], - "10223": [0.244, 0.744, 0, 0], - "10229": [0.011, 0.511, 0, 0], - "10230": [0.011, 0.511, 0, 0], - "10231": [0.011, 0.511, 0, 0], - "10232": [0.024, 0.525, 0, 0], - "10233": [0.024, 0.525, 0, 0], - "10234": [0.024, 0.525, 0, 0], - "10236": [0.011, 0.511, 0, 0], - "10815": [0, 0.68333, 0, 0], - "10927": [0.13597, 0.63597, 0, 0], - "10928": [0.13597, 0.63597, 0, 0] - }, - "Math-BoldItalic": { - "47": [0.19444, 0.69444, 0, 0], - "65": [0, 0.68611, 0, 0], - "66": [0, 0.68611, 0.04835, 0], - "67": [0, 0.68611, 0.06979, 0], - "68": [0, 0.68611, 0.03194, 0], - "69": [0, 0.68611, 0.05451, 0], - "70": [0, 0.68611, 0.15972, 0], - "71": [0, 0.68611, 0, 0], - "72": [0, 0.68611, 0.08229, 0], - "73": [0, 0.68611, 0.07778, 0], - "74": [0, 0.68611, 0.10069, 0], - "75": [0, 0.68611, 0.06979, 0], - "76": [0, 0.68611, 0, 0], - "77": [0, 0.68611, 0.11424, 0], - "78": [0, 0.68611, 0.11424, 0], - "79": [0, 0.68611, 0.03194, 0], - "80": [0, 0.68611, 0.15972, 0], - "81": [0.19444, 0.68611, 0, 0], - "82": [0, 0.68611, 0.00421, 0], - "83": [0, 0.68611, 0.05382, 0], - "84": [0, 0.68611, 0.15972, 0], - "85": [0, 0.68611, 0.11424, 0], - "86": [0, 0.68611, 0.25555, 0], - "87": [0, 0.68611, 0.15972, 0], - "88": [0, 0.68611, 0.07778, 0], - "89": [0, 0.68611, 0.25555, 0], - "90": [0, 0.68611, 0.06979, 0], - "97": [0, 0.44444, 0, 0], - "98": [0, 0.69444, 0, 0], - "99": [0, 0.44444, 0, 0], - "100": [0, 0.69444, 0, 0], - "101": [0, 0.44444, 0, 0], - "102": [0.19444, 0.69444, 0.11042, 0], - "103": [0.19444, 0.44444, 0.03704, 0], - "104": [0, 0.69444, 0, 0], - "105": [0, 0.69326, 0, 0], - "106": [0.19444, 0.69326, 0.0622, 0], - "107": [0, 0.69444, 0.01852, 0], - "108": [0, 0.69444, 0.0088, 0], - "109": [0, 0.44444, 0, 0], - "110": [0, 0.44444, 0, 0], - "111": [0, 0.44444, 0, 0], - "112": [0.19444, 0.44444, 0, 0], - "113": [0.19444, 0.44444, 0.03704, 0], - "114": [0, 0.44444, 0.03194, 0], - "115": [0, 0.44444, 0, 0], - "116": [0, 0.63492, 0, 0], - "117": [0, 0.44444, 0, 0], - "118": [0, 0.44444, 0.03704, 0], - "119": [0, 0.44444, 0.02778, 0], - "120": [0, 0.44444, 0, 0], - "121": [0.19444, 0.44444, 0.03704, 0], - "122": [0, 0.44444, 0.04213, 0], - "915": [0, 0.68611, 0.15972, 0], - "916": [0, 0.68611, 0, 0], - "920": [0, 0.68611, 0.03194, 0], - "923": [0, 0.68611, 0, 0], - "926": [0, 0.68611, 0.07458, 0], - "928": [0, 0.68611, 0.08229, 0], - "931": [0, 0.68611, 0.05451, 0], - "933": [0, 0.68611, 0.15972, 0], - "934": [0, 0.68611, 0, 0], - "936": [0, 0.68611, 0.11653, 0], - "937": [0, 0.68611, 0.04835, 0], - "945": [0, 0.44444, 0, 0], - "946": [0.19444, 0.69444, 0.03403, 0], - "947": [0.19444, 0.44444, 0.06389, 0], - "948": [0, 0.69444, 0.03819, 0], - "949": [0, 0.44444, 0, 0], - "950": [0.19444, 0.69444, 0.06215, 0], - "951": [0.19444, 0.44444, 0.03704, 0], - "952": [0, 0.69444, 0.03194, 0], - "953": [0, 0.44444, 0, 0], - "954": [0, 0.44444, 0, 0], - "955": [0, 0.69444, 0, 0], - "956": [0.19444, 0.44444, 0, 0], - "957": [0, 0.44444, 0.06898, 0], - "958": [0.19444, 0.69444, 0.03021, 0], - "959": [0, 0.44444, 0, 0], - "960": [0, 0.44444, 0.03704, 0], - "961": [0.19444, 0.44444, 0, 0], - "962": [0.09722, 0.44444, 0.07917, 0], - "963": [0, 0.44444, 0.03704, 0], - "964": [0, 0.44444, 0.13472, 0], - "965": [0, 0.44444, 0.03704, 0], - "966": [0.19444, 0.44444, 0, 0], - "967": [0.19444, 0.44444, 0, 0], - "968": [0.19444, 0.69444, 0.03704, 0], - "969": [0, 0.44444, 0.03704, 0], - "977": [0, 0.69444, 0, 0], - "981": [0.19444, 0.69444, 0, 0], - "982": [0, 0.44444, 0.03194, 0], - "1009": [0.19444, 0.44444, 0, 0], - "1013": [0, 0.44444, 0, 0] - }, - "Math-Italic": { - "47": [0.19444, 0.69444, 0, 0], - "65": [0, 0.68333, 0, 0.13889], - "66": [0, 0.68333, 0.05017, 0.08334], - "67": [0, 0.68333, 0.07153, 0.08334], - "68": [0, 0.68333, 0.02778, 0.05556], - "69": [0, 0.68333, 0.05764, 0.08334], - "70": [0, 0.68333, 0.13889, 0.08334], - "71": [0, 0.68333, 0, 0.08334], - "72": [0, 0.68333, 0.08125, 0.05556], - "73": [0, 0.68333, 0.07847, 0.11111], - "74": [0, 0.68333, 0.09618, 0.16667], - "75": [0, 0.68333, 0.07153, 0.05556], - "76": [0, 0.68333, 0, 0.02778], - "77": [0, 0.68333, 0.10903, 0.08334], - "78": [0, 0.68333, 0.10903, 0.08334], - "79": [0, 0.68333, 0.02778, 0.08334], - "80": [0, 0.68333, 0.13889, 0.08334], - "81": [0.19444, 0.68333, 0, 0.08334], - "82": [0, 0.68333, 0.00773, 0.08334], - "83": [0, 0.68333, 0.05764, 0.08334], - "84": [0, 0.68333, 0.13889, 0.08334], - "85": [0, 0.68333, 0.10903, 0.02778], - "86": [0, 0.68333, 0.22222, 0], - "87": [0, 0.68333, 0.13889, 0], - "88": [0, 0.68333, 0.07847, 0.08334], - "89": [0, 0.68333, 0.22222, 0], - "90": [0, 0.68333, 0.07153, 0.08334], - "97": [0, 0.43056, 0, 0], - "98": [0, 0.69444, 0, 0], - "99": [0, 0.43056, 0, 0.05556], - "100": [0, 0.69444, 0, 0.16667], - "101": [0, 0.43056, 0, 0.05556], - "102": [0.19444, 0.69444, 0.10764, 0.16667], - "103": [0.19444, 0.43056, 0.03588, 0.02778], - "104": [0, 0.69444, 0, 0], - "105": [0, 0.65952, 0, 0], - "106": [0.19444, 0.65952, 0.05724, 0], - "107": [0, 0.69444, 0.03148, 0], - "108": [0, 0.69444, 0.01968, 0.08334], - "109": [0, 0.43056, 0, 0], - "110": [0, 0.43056, 0, 0], - "111": [0, 0.43056, 0, 0.05556], - "112": [0.19444, 0.43056, 0, 0.08334], - "113": [0.19444, 0.43056, 0.03588, 0.08334], - "114": [0, 0.43056, 0.02778, 0.05556], - "115": [0, 0.43056, 0, 0.05556], - "116": [0, 0.61508, 0, 0.08334], - "117": [0, 0.43056, 0, 0.02778], - "118": [0, 0.43056, 0.03588, 0.02778], - "119": [0, 0.43056, 0.02691, 0.08334], - "120": [0, 0.43056, 0, 0.02778], - "121": [0.19444, 0.43056, 0.03588, 0.05556], - "122": [0, 0.43056, 0.04398, 0.05556], - "915": [0, 0.68333, 0.13889, 0.08334], - "916": [0, 0.68333, 0, 0.16667], - "920": [0, 0.68333, 0.02778, 0.08334], - "923": [0, 0.68333, 0, 0.16667], - "926": [0, 0.68333, 0.07569, 0.08334], - "928": [0, 0.68333, 0.08125, 0.05556], - "931": [0, 0.68333, 0.05764, 0.08334], - "933": [0, 0.68333, 0.13889, 0.05556], - "934": [0, 0.68333, 0, 0.08334], - "936": [0, 0.68333, 0.11, 0.05556], - "937": [0, 0.68333, 0.05017, 0.08334], - "945": [0, 0.43056, 0.0037, 0.02778], - "946": [0.19444, 0.69444, 0.05278, 0.08334], - "947": [0.19444, 0.43056, 0.05556, 0], - "948": [0, 0.69444, 0.03785, 0.05556], - "949": [0, 0.43056, 0, 0.08334], - "950": [0.19444, 0.69444, 0.07378, 0.08334], - "951": [0.19444, 0.43056, 0.03588, 0.05556], - "952": [0, 0.69444, 0.02778, 0.08334], - "953": [0, 0.43056, 0, 0.05556], - "954": [0, 0.43056, 0, 0], - "955": [0, 0.69444, 0, 0], - "956": [0.19444, 0.43056, 0, 0.02778], - "957": [0, 0.43056, 0.06366, 0.02778], - "958": [0.19444, 0.69444, 0.04601, 0.11111], - "959": [0, 0.43056, 0, 0.05556], - "960": [0, 0.43056, 0.03588, 0], - "961": [0.19444, 0.43056, 0, 0.08334], - "962": [0.09722, 0.43056, 0.07986, 0.08334], - "963": [0, 0.43056, 0.03588, 0], - "964": [0, 0.43056, 0.1132, 0.02778], - "965": [0, 0.43056, 0.03588, 0.02778], - "966": [0.19444, 0.43056, 0, 0.08334], - "967": [0.19444, 0.43056, 0, 0.05556], - "968": [0.19444, 0.69444, 0.03588, 0.11111], - "969": [0, 0.43056, 0.03588, 0], - "977": [0, 0.69444, 0, 0.08334], - "981": [0.19444, 0.69444, 0, 0.08334], - "982": [0, 0.43056, 0.02778, 0], - "1009": [0.19444, 0.43056, 0, 0.08334], - "1013": [0, 0.43056, 0, 0.05556] - }, - "Math-Regular": { - "65": [0, 0.68333, 0, 0.13889], - "66": [0, 0.68333, 0.05017, 0.08334], - "67": [0, 0.68333, 0.07153, 0.08334], - "68": [0, 0.68333, 0.02778, 0.05556], - "69": [0, 0.68333, 0.05764, 0.08334], - "70": [0, 0.68333, 0.13889, 0.08334], - "71": [0, 0.68333, 0, 0.08334], - "72": [0, 0.68333, 0.08125, 0.05556], - "73": [0, 0.68333, 0.07847, 0.11111], - "74": [0, 0.68333, 0.09618, 0.16667], - "75": [0, 0.68333, 0.07153, 0.05556], - "76": [0, 0.68333, 0, 0.02778], - "77": [0, 0.68333, 0.10903, 0.08334], - "78": [0, 0.68333, 0.10903, 0.08334], - "79": [0, 0.68333, 0.02778, 0.08334], - "80": [0, 0.68333, 0.13889, 0.08334], - "81": [0.19444, 0.68333, 0, 0.08334], - "82": [0, 0.68333, 0.00773, 0.08334], - "83": [0, 0.68333, 0.05764, 0.08334], - "84": [0, 0.68333, 0.13889, 0.08334], - "85": [0, 0.68333, 0.10903, 0.02778], - "86": [0, 0.68333, 0.22222, 0], - "87": [0, 0.68333, 0.13889, 0], - "88": [0, 0.68333, 0.07847, 0.08334], - "89": [0, 0.68333, 0.22222, 0], - "90": [0, 0.68333, 0.07153, 0.08334], - "97": [0, 0.43056, 0, 0], - "98": [0, 0.69444, 0, 0], - "99": [0, 0.43056, 0, 0.05556], - "100": [0, 0.69444, 0, 0.16667], - "101": [0, 0.43056, 0, 0.05556], - "102": [0.19444, 0.69444, 0.10764, 0.16667], - "103": [0.19444, 0.43056, 0.03588, 0.02778], - "104": [0, 0.69444, 0, 0], - "105": [0, 0.65952, 0, 0], - "106": [0.19444, 0.65952, 0.05724, 0], - "107": [0, 0.69444, 0.03148, 0], - "108": [0, 0.69444, 0.01968, 0.08334], - "109": [0, 0.43056, 0, 0], - "110": [0, 0.43056, 0, 0], - "111": [0, 0.43056, 0, 0.05556], - "112": [0.19444, 0.43056, 0, 0.08334], - "113": [0.19444, 0.43056, 0.03588, 0.08334], - "114": [0, 0.43056, 0.02778, 0.05556], - "115": [0, 0.43056, 0, 0.05556], - "116": [0, 0.61508, 0, 0.08334], - "117": [0, 0.43056, 0, 0.02778], - "118": [0, 0.43056, 0.03588, 0.02778], - "119": [0, 0.43056, 0.02691, 0.08334], - "120": [0, 0.43056, 0, 0.02778], - "121": [0.19444, 0.43056, 0.03588, 0.05556], - "122": [0, 0.43056, 0.04398, 0.05556], - "915": [0, 0.68333, 0.13889, 0.08334], - "916": [0, 0.68333, 0, 0.16667], - "920": [0, 0.68333, 0.02778, 0.08334], - "923": [0, 0.68333, 0, 0.16667], - "926": [0, 0.68333, 0.07569, 0.08334], - "928": [0, 0.68333, 0.08125, 0.05556], - "931": [0, 0.68333, 0.05764, 0.08334], - "933": [0, 0.68333, 0.13889, 0.05556], - "934": [0, 0.68333, 0, 0.08334], - "936": [0, 0.68333, 0.11, 0.05556], - "937": [0, 0.68333, 0.05017, 0.08334], - "945": [0, 0.43056, 0.0037, 0.02778], - "946": [0.19444, 0.69444, 0.05278, 0.08334], - "947": [0.19444, 0.43056, 0.05556, 0], - "948": [0, 0.69444, 0.03785, 0.05556], - "949": [0, 0.43056, 0, 0.08334], - "950": [0.19444, 0.69444, 0.07378, 0.08334], - "951": [0.19444, 0.43056, 0.03588, 0.05556], - "952": [0, 0.69444, 0.02778, 0.08334], - "953": [0, 0.43056, 0, 0.05556], - "954": [0, 0.43056, 0, 0], - "955": [0, 0.69444, 0, 0], - "956": [0.19444, 0.43056, 0, 0.02778], - "957": [0, 0.43056, 0.06366, 0.02778], - "958": [0.19444, 0.69444, 0.04601, 0.11111], - "959": [0, 0.43056, 0, 0.05556], - "960": [0, 0.43056, 0.03588, 0], - "961": [0.19444, 0.43056, 0, 0.08334], - "962": [0.09722, 0.43056, 0.07986, 0.08334], - "963": [0, 0.43056, 0.03588, 0], - "964": [0, 0.43056, 0.1132, 0.02778], - "965": [0, 0.43056, 0.03588, 0.02778], - "966": [0.19444, 0.43056, 0, 0.08334], - "967": [0.19444, 0.43056, 0, 0.05556], - "968": [0.19444, 0.69444, 0.03588, 0.11111], - "969": [0, 0.43056, 0.03588, 0], - "977": [0, 0.69444, 0, 0.08334], - "981": [0.19444, 0.69444, 0, 0.08334], - "982": [0, 0.43056, 0.02778, 0], - "1009": [0.19444, 0.43056, 0, 0.08334], - "1013": [0, 0.43056, 0, 0.05556] - }, - "SansSerif-Regular": { - "33": [0, 0.69444, 0, 0], - "34": [0, 0.69444, 0, 0], - "35": [0.19444, 0.69444, 0, 0], - "36": [0.05556, 0.75, 0, 0], - "37": [0.05556, 0.75, 0, 0], - "38": [0, 0.69444, 0, 0], - "39": [0, 0.69444, 0, 0], - "40": [0.25, 0.75, 0, 0], - "41": [0.25, 0.75, 0, 0], - "42": [0, 0.75, 0, 0], - "43": [0.08333, 0.58333, 0, 0], - "44": [0.125, 0.08333, 0, 0], - "45": [0, 0.44444, 0, 0], - "46": [0, 0.08333, 0, 0], - "47": [0.25, 0.75, 0, 0], - "48": [0, 0.65556, 0, 0], - "49": [0, 0.65556, 0, 0], - "50": [0, 0.65556, 0, 0], - "51": [0, 0.65556, 0, 0], - "52": [0, 0.65556, 0, 0], - "53": [0, 0.65556, 0, 0], - "54": [0, 0.65556, 0, 0], - "55": [0, 0.65556, 0, 0], - "56": [0, 0.65556, 0, 0], - "57": [0, 0.65556, 0, 0], - "58": [0, 0.44444, 0, 0], - "59": [0.125, 0.44444, 0, 0], - "61": [-0.13, 0.37, 0, 0], - "63": [0, 0.69444, 0, 0], - "64": [0, 0.69444, 0, 0], - "65": [0, 0.69444, 0, 0], - "66": [0, 0.69444, 0, 0], - "67": [0, 0.69444, 0, 0], - "68": [0, 0.69444, 0, 0], - "69": [0, 0.69444, 0, 0], - "70": [0, 0.69444, 0, 0], - "71": [0, 0.69444, 0, 0], - "72": [0, 0.69444, 0, 0], - "73": [0, 0.69444, 0, 0], - "74": [0, 0.69444, 0, 0], - "75": [0, 0.69444, 0, 0], - "76": [0, 0.69444, 0, 0], - "77": [0, 0.69444, 0, 0], - "78": [0, 0.69444, 0, 0], - "79": [0, 0.69444, 0, 0], - "80": [0, 0.69444, 0, 0], - "81": [0.125, 0.69444, 0, 0], - "82": [0, 0.69444, 0, 0], - "83": [0, 0.69444, 0, 0], - "84": [0, 0.69444, 0, 0], - "85": [0, 0.69444, 0, 0], - "86": [0, 0.69444, 0.01389, 0], - "87": [0, 0.69444, 0.01389, 0], - "88": [0, 0.69444, 0, 0], - "89": [0, 0.69444, 0.025, 0], - "90": [0, 0.69444, 0, 0], - "91": [0.25, 0.75, 0, 0], - "93": [0.25, 0.75, 0, 0], - "94": [0, 0.69444, 0, 0], - "95": [0.35, 0.09444, 0.02778, 0], - "97": [0, 0.44444, 0, 0], - "98": [0, 0.69444, 0, 0], - "99": [0, 0.44444, 0, 0], - "100": [0, 0.69444, 0, 0], - "101": [0, 0.44444, 0, 0], - "102": [0, 0.69444, 0.06944, 0], - "103": [0.19444, 0.44444, 0.01389, 0], - "104": [0, 0.69444, 0, 0], - "105": [0, 0.67937, 0, 0], - "106": [0.19444, 0.67937, 0, 0], - "107": [0, 0.69444, 0, 0], - "108": [0, 0.69444, 0, 0], - "109": [0, 0.44444, 0, 0], - "110": [0, 0.44444, 0, 0], - "111": [0, 0.44444, 0, 0], - "112": [0.19444, 0.44444, 0, 0], - "113": [0.19444, 0.44444, 0, 0], - "114": [0, 0.44444, 0.01389, 0], - "115": [0, 0.44444, 0, 0], - "116": [0, 0.57143, 0, 0], - "117": [0, 0.44444, 0, 0], - "118": [0, 0.44444, 0.01389, 0], - "119": [0, 0.44444, 0.01389, 0], - "120": [0, 0.44444, 0, 0], - "121": [0.19444, 0.44444, 0.01389, 0], - "122": [0, 0.44444, 0, 0], - "126": [0.35, 0.32659, 0, 0], - "305": [0, 0.44444, 0, 0], - "567": [0.19444, 0.44444, 0, 0], - "768": [0, 0.69444, 0, 0], - "769": [0, 0.69444, 0, 0], - "770": [0, 0.69444, 0, 0], - "771": [0, 0.67659, 0, 0], - "772": [0, 0.60889, 0, 0], - "774": [0, 0.69444, 0, 0], - "775": [0, 0.67937, 0, 0], - "776": [0, 0.67937, 0, 0], - "778": [0, 0.69444, 0, 0], - "779": [0, 0.69444, 0, 0], - "780": [0, 0.63194, 0, 0], - "915": [0, 0.69444, 0, 0], - "916": [0, 0.69444, 0, 0], - "920": [0, 0.69444, 0, 0], - "923": [0, 0.69444, 0, 0], - "926": [0, 0.69444, 0, 0], - "928": [0, 0.69444, 0, 0], - "931": [0, 0.69444, 0, 0], - "933": [0, 0.69444, 0, 0], - "934": [0, 0.69444, 0, 0], - "936": [0, 0.69444, 0, 0], - "937": [0, 0.69444, 0, 0], - "8211": [0, 0.44444, 0.02778, 0], - "8212": [0, 0.44444, 0.02778, 0], - "8216": [0, 0.69444, 0, 0], - "8217": [0, 0.69444, 0, 0], - "8220": [0, 0.69444, 0, 0], - "8221": [0, 0.69444, 0, 0] - }, - "Script-Regular": { - "65": [0, 0.7, 0.22925, 0], - "66": [0, 0.7, 0.04087, 0], - "67": [0, 0.7, 0.1689, 0], - "68": [0, 0.7, 0.09371, 0], - "69": [0, 0.7, 0.18583, 0], - "70": [0, 0.7, 0.13634, 0], - "71": [0, 0.7, 0.17322, 0], - "72": [0, 0.7, 0.29694, 0], - "73": [0, 0.7, 0.19189, 0], - "74": [0.27778, 0.7, 0.19189, 0], - "75": [0, 0.7, 0.31259, 0], - "76": [0, 0.7, 0.19189, 0], - "77": [0, 0.7, 0.15981, 0], - "78": [0, 0.7, 0.3525, 0], - "79": [0, 0.7, 0.08078, 0], - "80": [0, 0.7, 0.08078, 0], - "81": [0, 0.7, 0.03305, 0], - "82": [0, 0.7, 0.06259, 0], - "83": [0, 0.7, 0.19189, 0], - "84": [0, 0.7, 0.29087, 0], - "85": [0, 0.7, 0.25815, 0], - "86": [0, 0.7, 0.27523, 0], - "87": [0, 0.7, 0.27523, 0], - "88": [0, 0.7, 0.26006, 0], - "89": [0, 0.7, 0.2939, 0], - "90": [0, 0.7, 0.24037, 0] - }, - "Size1-Regular": { - "40": [0.35001, 0.85, 0, 0], - "41": [0.35001, 0.85, 0, 0], - "47": [0.35001, 0.85, 0, 0], - "91": [0.35001, 0.85, 0, 0], - "92": [0.35001, 0.85, 0, 0], - "93": [0.35001, 0.85, 0, 0], - "123": [0.35001, 0.85, 0, 0], - "125": [0.35001, 0.85, 0, 0], - "710": [0, 0.72222, 0, 0], - "732": [0, 0.72222, 0, 0], - "770": [0, 0.72222, 0, 0], - "771": [0, 0.72222, 0, 0], - "8214": [-0.00099, 0.601, 0, 0], - "8593": [1e-05, 0.6, 0, 0], - "8595": [1e-05, 0.6, 0, 0], - "8657": [1e-05, 0.6, 0, 0], - "8659": [1e-05, 0.6, 0, 0], - "8719": [0.25001, 0.75, 0, 0], - "8720": [0.25001, 0.75, 0, 0], - "8721": [0.25001, 0.75, 0, 0], - "8730": [0.35001, 0.85, 0, 0], - "8739": [-0.00599, 0.606, 0, 0], - "8741": [-0.00599, 0.606, 0, 0], - "8747": [0.30612, 0.805, 0.19445, 0], - "8748": [0.306, 0.805, 0.19445, 0], - "8749": [0.306, 0.805, 0.19445, 0], - "8750": [0.30612, 0.805, 0.19445, 0], - "8896": [0.25001, 0.75, 0, 0], - "8897": [0.25001, 0.75, 0, 0], - "8898": [0.25001, 0.75, 0, 0], - "8899": [0.25001, 0.75, 0, 0], - "8968": [0.35001, 0.85, 0, 0], - "8969": [0.35001, 0.85, 0, 0], - "8970": [0.35001, 0.85, 0, 0], - "8971": [0.35001, 0.85, 0, 0], - "9168": [-0.00099, 0.601, 0, 0], - "10216": [0.35001, 0.85, 0, 0], - "10217": [0.35001, 0.85, 0, 0], - "10752": [0.25001, 0.75, 0, 0], - "10753": [0.25001, 0.75, 0, 0], - "10754": [0.25001, 0.75, 0, 0], - "10756": [0.25001, 0.75, 0, 0], - "10758": [0.25001, 0.75, 0, 0] - }, - "Size2-Regular": { - "40": [0.65002, 1.15, 0, 0], - "41": [0.65002, 1.15, 0, 0], - "47": [0.65002, 1.15, 0, 0], - "91": [0.65002, 1.15, 0, 0], - "92": [0.65002, 1.15, 0, 0], - "93": [0.65002, 1.15, 0, 0], - "123": [0.65002, 1.15, 0, 0], - "125": [0.65002, 1.15, 0, 0], - "710": [0, 0.75, 0, 0], - "732": [0, 0.75, 0, 0], - "770": [0, 0.75, 0, 0], - "771": [0, 0.75, 0, 0], - "8719": [0.55001, 1.05, 0, 0], - "8720": [0.55001, 1.05, 0, 0], - "8721": [0.55001, 1.05, 0, 0], - "8730": [0.65002, 1.15, 0, 0], - "8747": [0.86225, 1.36, 0.44445, 0], - "8748": [0.862, 1.36, 0.44445, 0], - "8749": [0.862, 1.36, 0.44445, 0], - "8750": [0.86225, 1.36, 0.44445, 0], - "8896": [0.55001, 1.05, 0, 0], - "8897": [0.55001, 1.05, 0, 0], - "8898": [0.55001, 1.05, 0, 0], - "8899": [0.55001, 1.05, 0, 0], - "8968": [0.65002, 1.15, 0, 0], - "8969": [0.65002, 1.15, 0, 0], - "8970": [0.65002, 1.15, 0, 0], - "8971": [0.65002, 1.15, 0, 0], - "10216": [0.65002, 1.15, 0, 0], - "10217": [0.65002, 1.15, 0, 0], - "10752": [0.55001, 1.05, 0, 0], - "10753": [0.55001, 1.05, 0, 0], - "10754": [0.55001, 1.05, 0, 0], - "10756": [0.55001, 1.05, 0, 0], - "10758": [0.55001, 1.05, 0, 0] - }, - "Size3-Regular": { - "40": [0.95003, 1.45, 0, 0], - "41": [0.95003, 1.45, 0, 0], - "47": [0.95003, 1.45, 0, 0], - "91": [0.95003, 1.45, 0, 0], - "92": [0.95003, 1.45, 0, 0], - "93": [0.95003, 1.45, 0, 0], - "123": [0.95003, 1.45, 0, 0], - "125": [0.95003, 1.45, 0, 0], - "710": [0, 0.75, 0, 0], - "732": [0, 0.75, 0, 0], - "770": [0, 0.75, 0, 0], - "771": [0, 0.75, 0, 0], - "8730": [0.95003, 1.45, 0, 0], - "8968": [0.95003, 1.45, 0, 0], - "8969": [0.95003, 1.45, 0, 0], - "8970": [0.95003, 1.45, 0, 0], - "8971": [0.95003, 1.45, 0, 0], - "10216": [0.95003, 1.45, 0, 0], - "10217": [0.95003, 1.45, 0, 0] - }, - "Size4-Regular": { - "40": [1.25003, 1.75, 0, 0], - "41": [1.25003, 1.75, 0, 0], - "47": [1.25003, 1.75, 0, 0], - "91": [1.25003, 1.75, 0, 0], - "92": [1.25003, 1.75, 0, 0], - "93": [1.25003, 1.75, 0, 0], - "123": [1.25003, 1.75, 0, 0], - "125": [1.25003, 1.75, 0, 0], - "710": [0, 0.825, 0, 0], - "732": [0, 0.825, 0, 0], - "770": [0, 0.825, 0, 0], - "771": [0, 0.825, 0, 0], - "8730": [1.25003, 1.75, 0, 0], - "8968": [1.25003, 1.75, 0, 0], - "8969": [1.25003, 1.75, 0, 0], - "8970": [1.25003, 1.75, 0, 0], - "8971": [1.25003, 1.75, 0, 0], - "9115": [0.64502, 1.155, 0, 0], - "9116": [1e-05, 0.6, 0, 0], - "9117": [0.64502, 1.155, 0, 0], - "9118": [0.64502, 1.155, 0, 0], - "9119": [1e-05, 0.6, 0, 0], - "9120": [0.64502, 1.155, 0, 0], - "9121": [0.64502, 1.155, 0, 0], - "9122": [-0.00099, 0.601, 0, 0], - "9123": [0.64502, 1.155, 0, 0], - "9124": [0.64502, 1.155, 0, 0], - "9125": [-0.00099, 0.601, 0, 0], - "9126": [0.64502, 1.155, 0, 0], - "9127": [1e-05, 0.9, 0, 0], - "9128": [0.65002, 1.15, 0, 0], - "9129": [0.90001, 0, 0, 0], - "9130": [0, 0.3, 0, 0], - "9131": [1e-05, 0.9, 0, 0], - "9132": [0.65002, 1.15, 0, 0], - "9133": [0.90001, 0, 0, 0], - "9143": [0.88502, 0.915, 0, 0], - "10216": [1.25003, 1.75, 0, 0], - "10217": [1.25003, 1.75, 0, 0], - "57344": [-0.00499, 0.605, 0, 0], - "57345": [-0.00499, 0.605, 0, 0], - "57680": [0, 0.12, 0, 0], - "57681": [0, 0.12, 0, 0], - "57682": [0, 0.12, 0, 0], - "57683": [0, 0.12, 0, 0] - }, - "Typewriter-Regular": { - "33": [0, 0.61111, 0, 0], - "34": [0, 0.61111, 0, 0], - "35": [0, 0.61111, 0, 0], - "36": [0.08333, 0.69444, 0, 0], - "37": [0.08333, 0.69444, 0, 0], - "38": [0, 0.61111, 0, 0], - "39": [0, 0.61111, 0, 0], - "40": [0.08333, 0.69444, 0, 0], - "41": [0.08333, 0.69444, 0, 0], - "42": [0, 0.52083, 0, 0], - "43": [-0.08056, 0.53055, 0, 0], - "44": [0.13889, 0.125, 0, 0], - "45": [-0.08056, 0.53055, 0, 0], - "46": [0, 0.125, 0, 0], - "47": [0.08333, 0.69444, 0, 0], - "48": [0, 0.61111, 0, 0], - "49": [0, 0.61111, 0, 0], - "50": [0, 0.61111, 0, 0], - "51": [0, 0.61111, 0, 0], - "52": [0, 0.61111, 0, 0], - "53": [0, 0.61111, 0, 0], - "54": [0, 0.61111, 0, 0], - "55": [0, 0.61111, 0, 0], - "56": [0, 0.61111, 0, 0], - "57": [0, 0.61111, 0, 0], - "58": [0, 0.43056, 0, 0], - "59": [0.13889, 0.43056, 0, 0], - "60": [-0.05556, 0.55556, 0, 0], - "61": [-0.19549, 0.41562, 0, 0], - "62": [-0.05556, 0.55556, 0, 0], - "63": [0, 0.61111, 0, 0], - "64": [0, 0.61111, 0, 0], - "65": [0, 0.61111, 0, 0], - "66": [0, 0.61111, 0, 0], - "67": [0, 0.61111, 0, 0], - "68": [0, 0.61111, 0, 0], - "69": [0, 0.61111, 0, 0], - "70": [0, 0.61111, 0, 0], - "71": [0, 0.61111, 0, 0], - "72": [0, 0.61111, 0, 0], - "73": [0, 0.61111, 0, 0], - "74": [0, 0.61111, 0, 0], - "75": [0, 0.61111, 0, 0], - "76": [0, 0.61111, 0, 0], - "77": [0, 0.61111, 0, 0], - "78": [0, 0.61111, 0, 0], - "79": [0, 0.61111, 0, 0], - "80": [0, 0.61111, 0, 0], - "81": [0.13889, 0.61111, 0, 0], - "82": [0, 0.61111, 0, 0], - "83": [0, 0.61111, 0, 0], - "84": [0, 0.61111, 0, 0], - "85": [0, 0.61111, 0, 0], - "86": [0, 0.61111, 0, 0], - "87": [0, 0.61111, 0, 0], - "88": [0, 0.61111, 0, 0], - "89": [0, 0.61111, 0, 0], - "90": [0, 0.61111, 0, 0], - "91": [0.08333, 0.69444, 0, 0], - "92": [0.08333, 0.69444, 0, 0], - "93": [0.08333, 0.69444, 0, 0], - "94": [0, 0.61111, 0, 0], - "95": [0.09514, 0, 0, 0], - "96": [0, 0.61111, 0, 0], - "97": [0, 0.43056, 0, 0], - "98": [0, 0.61111, 0, 0], - "99": [0, 0.43056, 0, 0], - "100": [0, 0.61111, 0, 0], - "101": [0, 0.43056, 0, 0], - "102": [0, 0.61111, 0, 0], - "103": [0.22222, 0.43056, 0, 0], - "104": [0, 0.61111, 0, 0], - "105": [0, 0.61111, 0, 0], - "106": [0.22222, 0.61111, 0, 0], - "107": [0, 0.61111, 0, 0], - "108": [0, 0.61111, 0, 0], - "109": [0, 0.43056, 0, 0], - "110": [0, 0.43056, 0, 0], - "111": [0, 0.43056, 0, 0], - "112": [0.22222, 0.43056, 0, 0], - "113": [0.22222, 0.43056, 0, 0], - "114": [0, 0.43056, 0, 0], - "115": [0, 0.43056, 0, 0], - "116": [0, 0.55358, 0, 0], - "117": [0, 0.43056, 0, 0], - "118": [0, 0.43056, 0, 0], - "119": [0, 0.43056, 0, 0], - "120": [0, 0.43056, 0, 0], - "121": [0.22222, 0.43056, 0, 0], - "122": [0, 0.43056, 0, 0], - "123": [0.08333, 0.69444, 0, 0], - "124": [0.08333, 0.69444, 0, 0], - "125": [0.08333, 0.69444, 0, 0], - "126": [0, 0.61111, 0, 0], - "127": [0, 0.61111, 0, 0], - "305": [0, 0.43056, 0, 0], - "567": [0.22222, 0.43056, 0, 0], - "768": [0, 0.61111, 0, 0], - "769": [0, 0.61111, 0, 0], - "770": [0, 0.61111, 0, 0], - "771": [0, 0.61111, 0, 0], - "772": [0, 0.56555, 0, 0], - "774": [0, 0.61111, 0, 0], - "776": [0, 0.61111, 0, 0], - "778": [0, 0.61111, 0, 0], - "780": [0, 0.56597, 0, 0], - "915": [0, 0.61111, 0, 0], - "916": [0, 0.61111, 0, 0], - "920": [0, 0.61111, 0, 0], - "923": [0, 0.61111, 0, 0], - "926": [0, 0.61111, 0, 0], - "928": [0, 0.61111, 0, 0], - "931": [0, 0.61111, 0, 0], - "933": [0, 0.61111, 0, 0], - "934": [0, 0.61111, 0, 0], - "936": [0, 0.61111, 0, 0], - "937": [0, 0.61111, 0, 0], - "2018": [0, 0.61111, 0, 0], - "2019": [0, 0.61111, 0, 0], - "8242": [0, 0.61111, 0, 0] - } - }; - - },{}],43:[function(require,module,exports){ - - var _utils = require("./utils"); - - var _utils2 = _interopRequireDefault(_utils); - - var _ParseError = require("./ParseError"); - - var _ParseError2 = _interopRequireDefault(_ParseError); - - var _ParseNode = require("./ParseNode"); - - var _ParseNode2 = _interopRequireDefault(_ParseNode); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /* This file contains a list of functions that we parse, identified by - * the calls to defineFunction. - * - * The first argument to defineFunction is a single name or a list of names. - * All functions named in such a list will share a single implementation. - * - * Each declared function can have associated properties, which - * include the following: - * - * - numArgs: The number of arguments the function takes. - * If this is the only property, it can be passed as a number - * instead of an element of a properties object. - * - argTypes: (optional) An array corresponding to each argument of the - * function, giving the type of argument that should be parsed. Its - * length should be equal to `numArgs + numOptionalArgs`. Valid - * types: - * - "size": A size-like thing, such as "1em" or "5ex" - * - "color": An html color, like "#abc" or "blue" - * - "original": The same type as the environment that the - * function being parsed is in (e.g. used for the - * bodies of functions like \textcolor where the - * first argument is special and the second - * argument is parsed normally) - * Other possible types (probably shouldn't be used) - * - "text": Text-like (e.g. \text) - * - "math": Normal math - * If undefined, this will be treated as an appropriate length - * array of "original" strings - * - greediness: (optional) The greediness of the function to use ungrouped - * arguments. - * - * E.g. if you have an expression - * \sqrt \frac 1 2 - * since \frac has greediness=2 vs \sqrt's greediness=1, \frac - * will use the two arguments '1' and '2' as its two arguments, - * then that whole function will be used as the argument to - * \sqrt. On the other hand, the expressions - * \frac \frac 1 2 3 - * and - * \frac \sqrt 1 2 - * will fail because \frac and \frac have equal greediness - * and \sqrt has a lower greediness than \frac respectively. To - * make these parse, we would have to change them to: - * \frac {\frac 1 2} 3 - * and - * \frac {\sqrt 1} 2 - * - * The default value is `1` - * - allowedInText: (optional) Whether or not the function is allowed inside - * text mode (default false) - * - numOptionalArgs: (optional) The number of optional arguments the function - * should parse. If the optional arguments aren't found, - * `null` will be passed to the handler in their place. - * (default 0) - * - infix: (optional) Must be true if the function is an infix operator. - * - * The last argument is that implementation, the handler for the function(s). - * It is called to handle these functions and their arguments. - * It receives two arguments: - * - context contains information and references provided by the parser - * - args is an array of arguments obtained from TeX input - * The context contains the following properties: - * - funcName: the text (i.e. name) of the function, including \ - * - parser: the parser object - * - lexer: the lexer object - * - positions: the positions in the overall string of the function - * and the arguments. - * The latter three should only be used to produce error messages. - * - * The function should return an object with the following keys: - * - type: The type of element that this is. This is then used in - * buildHTML/buildMathML to determine which function - * should be called to build this node into a DOM node - * Any other data can be added to the object, which will be passed - * in to the function in buildHTML/buildMathML as `group.value`. - */ - - function defineFunction(names, props, handler) { - if (typeof names === "string") { - names = [names]; - } - if (typeof props === "number") { - props = { numArgs: props }; - } - // Set default values of functions - var data = { - numArgs: props.numArgs, - argTypes: props.argTypes, - greediness: props.greediness === undefined ? 1 : props.greediness, - allowedInText: !!props.allowedInText, - allowedInMath: props.allowedInMath, - numOptionalArgs: props.numOptionalArgs || 0, - infix: !!props.infix, - handler: handler - }; - for (var i = 0; i < names.length; ++i) { - module.exports[names[i]] = data; - } - } - - // Since the corresponding buildHTML/buildMathML function expects a - // list of elements, we normalize for different kinds of arguments - var ordargument = function ordargument(arg) { - if (arg.type === "ordgroup") { - return arg.value; - } else { - return [arg]; - } - }; - - // A normal square root - defineFunction("\\sqrt", { - numArgs: 1, - numOptionalArgs: 1 - }, function (context, args) { - var index = args[0]; - var body = args[1]; - return { - type: "sqrt", - body: body, - index: index - }; - }); - - // Non-mathy text, possibly in a font - var textFunctionStyles = { - "\\text": undefined, "\\textrm": "mathrm", "\\textsf": "mathsf", - "\\texttt": "mathtt", "\\textnormal": "mathrm", "\\textbf": "mathbf", - "\\textit": "textit" - }; - - defineFunction(["\\text", "\\textrm", "\\textsf", "\\texttt", "\\textnormal", "\\textbf", "\\textit"], { - numArgs: 1, - argTypes: ["text"], - greediness: 2, - allowedInText: true - }, function (context, args) { - var body = args[0]; - return { - type: "text", - body: ordargument(body), - style: textFunctionStyles[context.funcName] - }; - }); - - // A two-argument custom color - defineFunction("\\textcolor", { - numArgs: 2, - allowedInText: true, - greediness: 3, - argTypes: ["color", "original"] - }, function (context, args) { - var color = args[0]; - var body = args[1]; - return { - type: "color", - color: color.value, - value: ordargument(body) - }; - }); - - // \color is handled in Parser.js's parseImplicitGroup - defineFunction("\\color", { - numArgs: 1, - allowedInText: true, - greediness: 3, - argTypes: ["color"] - }, null); - - // An overline - defineFunction("\\overline", { - numArgs: 1 - }, function (context, args) { - var body = args[0]; - return { - type: "overline", - body: body - }; - }); - - // An underline - defineFunction("\\underline", { - numArgs: 1 - }, function (context, args) { - var body = args[0]; - return { - type: "underline", - body: body - }; - }); - - // A box of the width and height - defineFunction("\\rule", { - numArgs: 2, - numOptionalArgs: 1, - argTypes: ["size", "size", "size"] - }, function (context, args) { - var shift = args[0]; - var width = args[1]; - var height = args[2]; - return { - type: "rule", - shift: shift && shift.value, - width: width.value, - height: height.value - }; - }); - - // TODO: In TeX, \mkern only accepts mu-units, and \kern does not accept - // mu-units. In current KaTeX we relax this; both commands accept any unit. - defineFunction(["\\kern", "\\mkern"], { - numArgs: 1, - argTypes: ["size"] - }, function (context, args) { - return { - type: "kern", - dimension: args[0].value - }; - }); - - // A KaTeX logo - defineFunction("\\KaTeX", { - numArgs: 0 - }, function (context) { - return { - type: "katex" - }; - }); - - defineFunction("\\phantom", { - numArgs: 1 - }, function (context, args) { - var body = args[0]; - return { - type: "phantom", - value: ordargument(body) - }; - }); - - // Math class commands except \mathop - defineFunction(["\\mathord", "\\mathbin", "\\mathrel", "\\mathopen", "\\mathclose", "\\mathpunct", "\\mathinner"], { - numArgs: 1 - }, function (context, args) { - var body = args[0]; - return { - type: "mclass", - mclass: "m" + context.funcName.substr(5), - value: ordargument(body) - }; - }); - - // Build a relation by placing one symbol on top of another - defineFunction("\\stackrel", { - numArgs: 2 - }, function (context, args) { - var top = args[0]; - var bottom = args[1]; - - var bottomop = new _ParseNode2.default("op", { - type: "op", - limits: true, - alwaysHandleSupSub: true, - symbol: false, - value: ordargument(bottom) - }, bottom.mode); - - var supsub = new _ParseNode2.default("supsub", { - base: bottomop, - sup: top, - sub: null - }, top.mode); - - return { - type: "mclass", - mclass: "mrel", - value: [supsub] - }; - }); - - // \mod-type functions - defineFunction("\\bmod", { - numArgs: 0 - }, function (context, args) { - return { - type: "mod", - modType: "bmod", - value: null - }; - }); - - defineFunction(["\\pod", "\\pmod", "\\mod"], { - numArgs: 1 - }, function (context, args) { - var body = args[0]; - return { - type: "mod", - modType: context.funcName.substr(1), - value: ordargument(body) - }; - }); - - // Extra data needed for the delimiter handler down below - var delimiterSizes = { - "\\bigl": { mclass: "mopen", size: 1 }, - "\\Bigl": { mclass: "mopen", size: 2 }, - "\\biggl": { mclass: "mopen", size: 3 }, - "\\Biggl": { mclass: "mopen", size: 4 }, - "\\bigr": { mclass: "mclose", size: 1 }, - "\\Bigr": { mclass: "mclose", size: 2 }, - "\\biggr": { mclass: "mclose", size: 3 }, - "\\Biggr": { mclass: "mclose", size: 4 }, - "\\bigm": { mclass: "mrel", size: 1 }, - "\\Bigm": { mclass: "mrel", size: 2 }, - "\\biggm": { mclass: "mrel", size: 3 }, - "\\Biggm": { mclass: "mrel", size: 4 }, - "\\big": { mclass: "mord", size: 1 }, - "\\Big": { mclass: "mord", size: 2 }, - "\\bigg": { mclass: "mord", size: 3 }, - "\\Bigg": { mclass: "mord", size: 4 } - }; - - var delimiters = ["(", ")", "[", "\\lbrack", "]", "\\rbrack", "\\{", "\\lbrace", "\\}", "\\rbrace", "\\lfloor", "\\rfloor", "\\lceil", "\\rceil", "<", ">", "\\langle", "\\rangle", "\\lt", "\\gt", "\\lvert", "\\rvert", "\\lVert", "\\rVert", "\\lgroup", "\\rgroup", "\\lmoustache", "\\rmoustache", "/", "\\backslash", "|", "\\vert", "\\|", "\\Vert", "\\uparrow", "\\Uparrow", "\\downarrow", "\\Downarrow", "\\updownarrow", "\\Updownarrow", "."]; - - var fontAliases = { - "\\Bbb": "\\mathbb", - "\\bold": "\\mathbf", - "\\frak": "\\mathfrak" - }; - - // Single-argument color functions - defineFunction(["\\blue", "\\orange", "\\pink", "\\red", "\\green", "\\gray", "\\purple", "\\blueA", "\\blueB", "\\blueC", "\\blueD", "\\blueE", "\\tealA", "\\tealB", "\\tealC", "\\tealD", "\\tealE", "\\greenA", "\\greenB", "\\greenC", "\\greenD", "\\greenE", "\\goldA", "\\goldB", "\\goldC", "\\goldD", "\\goldE", "\\redA", "\\redB", "\\redC", "\\redD", "\\redE", "\\maroonA", "\\maroonB", "\\maroonC", "\\maroonD", "\\maroonE", "\\purpleA", "\\purpleB", "\\purpleC", "\\purpleD", "\\purpleE", "\\mintA", "\\mintB", "\\mintC", "\\grayA", "\\grayB", "\\grayC", "\\grayD", "\\grayE", "\\grayF", "\\grayG", "\\grayH", "\\grayI", "\\kaBlue", "\\kaGreen"], { - numArgs: 1, - allowedInText: true, - greediness: 3 - }, function (context, args) { - var body = args[0]; - return { - type: "color", - color: "katex-" + context.funcName.slice(1), - value: ordargument(body) - }; - }); - - // There are 2 flags for operators; whether they produce limits in - // displaystyle, and whether they are symbols and should grow in - // displaystyle. These four groups cover the four possible choices. - - // No limits, not symbols - defineFunction(["\\arcsin", "\\arccos", "\\arctan", "\\arctg", "\\arcctg", "\\arg", "\\ch", "\\cos", "\\cosec", "\\cosh", "\\cot", "\\cotg", "\\coth", "\\csc", "\\ctg", "\\cth", "\\deg", "\\dim", "\\exp", "\\hom", "\\ker", "\\lg", "\\ln", "\\log", "\\sec", "\\sin", "\\sinh", "\\sh", "\\tan", "\\tanh", "\\tg", "\\th"], { - numArgs: 0 - }, function (context) { - return { - type: "op", - limits: false, - symbol: false, - body: context.funcName - }; - }); - - // Limits, not symbols - defineFunction(["\\det", "\\gcd", "\\inf", "\\lim", "\\liminf", "\\limsup", "\\max", "\\min", "\\Pr", "\\sup"], { - numArgs: 0 - }, function (context) { - return { - type: "op", - limits: true, - symbol: false, - body: context.funcName - }; - }); - - // No limits, symbols - defineFunction(["\\int", "\\iint", "\\iiint", "\\oint"], { - numArgs: 0 - }, function (context) { - return { - type: "op", - limits: false, - symbol: true, - body: context.funcName - }; - }); - - // Limits, symbols - defineFunction(["\\coprod", "\\bigvee", "\\bigwedge", "\\biguplus", "\\bigcap", "\\bigcup", "\\intop", "\\prod", "\\sum", "\\bigotimes", "\\bigoplus", "\\bigodot", "\\bigsqcup", "\\smallint"], { - numArgs: 0 - }, function (context) { - return { - type: "op", - limits: true, - symbol: true, - body: context.funcName - }; - }); - - // \mathop class command - defineFunction("\\mathop", { - numArgs: 1 - }, function (context, args) { - var body = args[0]; - return { - type: "op", - limits: false, - symbol: false, - value: ordargument(body) - }; - }); - - // Fractions - defineFunction(["\\dfrac", "\\frac", "\\tfrac", "\\dbinom", "\\binom", "\\tbinom", "\\\\atopfrac"], { - numArgs: 2, - greediness: 2 - }, function (context, args) { - var numer = args[0]; - var denom = args[1]; - var hasBarLine = void 0; - var leftDelim = null; - var rightDelim = null; - var size = "auto"; - - switch (context.funcName) { - case "\\dfrac": - case "\\frac": - case "\\tfrac": - hasBarLine = true; - break; - case "\\\\atopfrac": - hasBarLine = false; - break; - case "\\dbinom": - case "\\binom": - case "\\tbinom": - hasBarLine = false; - leftDelim = "("; - rightDelim = ")"; - break; - default: - throw new Error("Unrecognized genfrac command"); - } - - switch (context.funcName) { - case "\\dfrac": - case "\\dbinom": - size = "display"; - break; - case "\\tfrac": - case "\\tbinom": - size = "text"; - break; - } - - return { - type: "genfrac", - numer: numer, - denom: denom, - hasBarLine: hasBarLine, - leftDelim: leftDelim, - rightDelim: rightDelim, - size: size - }; - }); - - // Left and right overlap functions - defineFunction(["\\llap", "\\rlap"], { - numArgs: 1, - allowedInText: true - }, function (context, args) { - var body = args[0]; - return { - type: context.funcName.slice(1), - body: body - }; - }); - - // Delimiter functions - var checkDelimiter = function checkDelimiter(delim, context) { - if (_utils2.default.contains(delimiters, delim.value)) { - return delim; - } else { - throw new _ParseError2.default("Invalid delimiter: '" + delim.value + "' after '" + context.funcName + "'", delim); - } - }; - - defineFunction(["\\bigl", "\\Bigl", "\\biggl", "\\Biggl", "\\bigr", "\\Bigr", "\\biggr", "\\Biggr", "\\bigm", "\\Bigm", "\\biggm", "\\Biggm", "\\big", "\\Big", "\\bigg", "\\Bigg"], { - numArgs: 1 - }, function (context, args) { - var delim = checkDelimiter(args[0], context); - - return { - type: "delimsizing", - size: delimiterSizes[context.funcName].size, - mclass: delimiterSizes[context.funcName].mclass, - value: delim.value - }; - }); - - defineFunction(["\\left", "\\right"], { - numArgs: 1 - }, function (context, args) { - var delim = checkDelimiter(args[0], context); - - // \left and \right are caught somewhere in Parser.js, which is - // why this data doesn't match what is in buildHTML. - return { - type: "leftright", - value: delim.value - }; - }); - - defineFunction("\\middle", { - numArgs: 1 - }, function (context, args) { - var delim = checkDelimiter(args[0], context); - if (!context.parser.leftrightDepth) { - throw new _ParseError2.default("\\middle without preceding \\left", delim); - } - - return { - type: "middle", - value: delim.value - }; - }); - - // Sizing functions (handled in Parser.js explicitly, hence no handler) - defineFunction(["\\tiny", "\\scriptsize", "\\footnotesize", "\\small", "\\normalsize", "\\large", "\\Large", "\\LARGE", "\\huge", "\\Huge"], 0, null); - - // Style changing functions (handled in Parser.js explicitly, hence no - // handler) - defineFunction(["\\displaystyle", "\\textstyle", "\\scriptstyle", "\\scriptscriptstyle"], 0, null); - - // Old font changing functions - defineFunction(["\\rm", "\\sf", "\\tt", "\\bf", "\\it"], 0, null); - - defineFunction([ - // styles - "\\mathrm", "\\mathit", "\\mathbf", - - // families - "\\mathbb", "\\mathcal", "\\mathfrak", "\\mathscr", "\\mathsf", "\\mathtt", - - // aliases - "\\Bbb", "\\bold", "\\frak"], { - numArgs: 1, - greediness: 2 - }, function (context, args) { - var body = args[0]; - var func = context.funcName; - if (func in fontAliases) { - func = fontAliases[func]; - } - return { - type: "font", - font: func.slice(1), - body: body - }; - }); - - // Accents - defineFunction(["\\acute", "\\grave", "\\ddot", "\\tilde", "\\bar", "\\breve", "\\check", "\\hat", "\\vec", "\\dot", "\\widehat", "\\widetilde", "\\overrightarrow", "\\overleftarrow", "\\Overrightarrow", "\\overleftrightarrow", "\\overgroup", "\\overlinesegment", "\\overleftharpoon", "\\overrightharpoon"], { - numArgs: 1 - }, function (context, args) { - var base = args[0]; - - var isStretchy = !_utils2.default.contains(["\\acute", "\\grave", "\\ddot", "\\tilde", "\\bar", "\\breve", "\\check", "\\hat", "\\vec", "\\dot"], context.funcName); - - var isShifty = !isStretchy || _utils2.default.contains(["\\widehat", "\\widetilde"], context.funcName); - - return { - type: "accent", - label: context.funcName, - isStretchy: isStretchy, - isShifty: isShifty, - value: ordargument(base), - base: base - }; - }); - - // Text-mode accents - defineFunction(["\\'", "\\`", "\\^", "\\~", "\\=", "\\u", "\\.", '\\"', "\\r", "\\H", "\\v"], { - numArgs: 1, - allowedInText: true, - allowedInMath: false - }, function (context, args) { - var base = args[0]; - - return { - type: "accent", - label: context.funcName, - isStretchy: false, - isShifty: true, - value: ordargument(base), - base: base - }; - }); - - // Horizontal stretchy braces - defineFunction(["\\overbrace", "\\underbrace"], { - numArgs: 1 - }, function (context, args) { - var base = args[0]; - return { - type: "horizBrace", - label: context.funcName, - isOver: /^\\over/.test(context.funcName), - base: base - }; - }); - - // Stretchy accents under the body - defineFunction(["\\underleftarrow", "\\underrightarrow", "\\underleftrightarrow", "\\undergroup", "\\underlinesegment", "\\undertilde"], { - numArgs: 1 - }, function (context, args) { - var body = args[0]; - return { - type: "accentUnder", - label: context.funcName, - value: ordargument(body), - body: body - }; - }); - - // Stretchy arrows with an optional argument - defineFunction(["\\xleftarrow", "\\xrightarrow", "\\xLeftarrow", "\\xRightarrow", "\\xleftrightarrow", "\\xLeftrightarrow", "\\xhookleftarrow", "\\xhookrightarrow", "\\xmapsto", "\\xrightharpoondown", "\\xrightharpoonup", "\\xleftharpoondown", "\\xleftharpoonup", "\\xrightleftharpoons", "\\xleftrightharpoons", "\\xLongequal", "\\xtwoheadrightarrow", "\\xtwoheadleftarrow", "\\xLongequal", "\\xtofrom"], { - numArgs: 1, - numOptionalArgs: 1 - }, function (context, args) { - var below = args[0]; - var body = args[1]; - return { - type: "xArrow", // x for extensible - label: context.funcName, - body: body, - below: below - }; - }); - - // enclose - defineFunction(["\\cancel", "\\bcancel", "\\xcancel", "\\sout", "\\fbox"], { - numArgs: 1 - }, function (context, args) { - var body = args[0]; - return { - type: "enclose", - label: context.funcName, - body: body - }; - }); - - // Infix generalized fractions - defineFunction(["\\over", "\\choose", "\\atop"], { - numArgs: 0, - infix: true - }, function (context) { - var replaceWith = void 0; - switch (context.funcName) { - case "\\over": - replaceWith = "\\frac"; - break; - case "\\choose": - replaceWith = "\\binom"; - break; - case "\\atop": - replaceWith = "\\\\atopfrac"; - break; - default: - throw new Error("Unrecognized infix genfrac command"); - } - return { - type: "infix", - replaceWith: replaceWith, - token: context.token - }; - }); - - // Row breaks for aligned data - defineFunction(["\\\\", "\\cr"], { - numArgs: 0, - numOptionalArgs: 1, - argTypes: ["size"] - }, function (context, args) { - var size = args[0]; - return { - type: "cr", - size: size - }; - }); - - // Environment delimiters - defineFunction(["\\begin", "\\end"], { - numArgs: 1, - argTypes: ["text"] - }, function (context, args) { - var nameGroup = args[0]; - if (nameGroup.type !== "ordgroup") { - throw new _ParseError2.default("Invalid environment name", nameGroup); - } - var name = ""; - for (var i = 0; i < nameGroup.value.length; ++i) { - name += nameGroup.value[i].value; - } - return { - type: "environment", - name: name, - nameGroup: nameGroup - }; - }); - - },{"./ParseError":29,"./ParseNode":30,"./utils":51}],44:[function(require,module,exports){ - - /** - * Predefined macros for KaTeX. - * This can be used to define some commands in terms of others. - */ - - // This function might one day accept additional argument and do more things. - function defineMacro(name, body) { - module.exports[name] = body; - } - - ////////////////////////////////////////////////////////////////////// - // basics - defineMacro("\\bgroup", "{"); - defineMacro("\\egroup", "}"); - defineMacro("\\begingroup", "{"); - defineMacro("\\endgroup", "}"); - - // We don't distinguish between math and nonmath kerns. - // (In TeX, the mu unit works only with \mkern.) - defineMacro("\\mkern", "\\kern"); - - ////////////////////////////////////////////////////////////////////// - // amsmath.sty - - // \def\overset#1#2{\binrel@{#2}\binrel@@{\mathop{\kern\z@#2}\limits^{#1}}} - defineMacro("\\overset", "\\mathop{#2}\\limits^{#1}"); - defineMacro("\\underset", "\\mathop{#2}\\limits_{#1}"); - - // \newcommand{\boxed}[1]{\fbox{\m@th$\displaystyle#1$}} - defineMacro("\\boxed", "\\fbox{\\displaystyle{#1}}"); - - //TODO: When implementing \dots, should ideally add the \DOTSB indicator - // into the macro, to indicate these are binary operators. - // \def\iff{\DOTSB\;\Longleftrightarrow\;} - // \def\implies{\DOTSB\;\Longrightarrow\;} - // \def\impliedby{\DOTSB\;\Longleftarrow\;} - defineMacro("\\iff", "\\;\\Longleftrightarrow\\;"); - defineMacro("\\implies", "\\;\\Longrightarrow\\;"); - defineMacro("\\impliedby", "\\;\\Longleftarrow\\;"); - - ////////////////////////////////////////////////////////////////////// - // mathtools.sty - - //\providecommand\ordinarycolon{:} - defineMacro("\\ordinarycolon", ":"); - //\def\vcentcolon{\mathrel{\mathop\ordinarycolon}} - //TODO(edemaine): Not yet centered. Fix via \raisebox or #726 - defineMacro("\\vcentcolon", "\\mathrel{\\mathop\\ordinarycolon}"); - // \providecommand*\dblcolon{\vcentcolon\mathrel{\mkern-.9mu}\vcentcolon} - defineMacro("\\dblcolon", "\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon"); - // \providecommand*\coloneqq{\vcentcolon\mathrel{\mkern-1.2mu}=} - defineMacro("\\coloneqq", "\\vcentcolon\\mathrel{\\mkern-1.2mu}="); - // \providecommand*\Coloneqq{\dblcolon\mathrel{\mkern-1.2mu}=} - defineMacro("\\Coloneqq", "\\dblcolon\\mathrel{\\mkern-1.2mu}="); - // \providecommand*\coloneq{\vcentcolon\mathrel{\mkern-1.2mu}\mathrel{-}} - defineMacro("\\coloneq", "\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}"); - // \providecommand*\Coloneq{\dblcolon\mathrel{\mkern-1.2mu}\mathrel{-}} - defineMacro("\\Coloneq", "\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}"); - // \providecommand*\eqqcolon{=\mathrel{\mkern-1.2mu}\vcentcolon} - defineMacro("\\eqqcolon", "=\\mathrel{\\mkern-1.2mu}\\vcentcolon"); - // \providecommand*\Eqqcolon{=\mathrel{\mkern-1.2mu}\dblcolon} - defineMacro("\\Eqqcolon", "=\\mathrel{\\mkern-1.2mu}\\dblcolon"); - // \providecommand*\eqcolon{\mathrel{-}\mathrel{\mkern-1.2mu}\vcentcolon} - defineMacro("\\eqcolon", "\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon"); - // \providecommand*\Eqcolon{\mathrel{-}\mathrel{\mkern-1.2mu}\dblcolon} - defineMacro("\\Eqcolon", "\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon"); - // \providecommand*\colonapprox{\vcentcolon\mathrel{\mkern-1.2mu}\approx} - defineMacro("\\colonapprox", "\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx"); - // \providecommand*\Colonapprox{\dblcolon\mathrel{\mkern-1.2mu}\approx} - defineMacro("\\Colonapprox", "\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx"); - // \providecommand*\colonsim{\vcentcolon\mathrel{\mkern-1.2mu}\sim} - defineMacro("\\colonsim", "\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim"); - // \providecommand*\Colonsim{\dblcolon\mathrel{\mkern-1.2mu}\sim} - defineMacro("\\Colonsim", "\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim"); - - ////////////////////////////////////////////////////////////////////// - // colonequals.sty - - // Alternate names for mathtools's macros: - defineMacro("\\ratio", "\\vcentcolon"); - defineMacro("\\coloncolon", "\\dblcolon"); - defineMacro("\\colonequals", "\\coloneqq"); - defineMacro("\\coloncolonequals", "\\Coloneqq"); - defineMacro("\\equalscolon", "\\eqqcolon"); - defineMacro("\\equalscoloncolon", "\\Eqqcolon"); - defineMacro("\\colonminus", "\\coloneq"); - defineMacro("\\coloncolonminus", "\\Coloneq"); - defineMacro("\\minuscolon", "\\eqcolon"); - defineMacro("\\minuscoloncolon", "\\Eqcolon"); - // \colonapprox name is same in mathtools and colonequals. - defineMacro("\\coloncolonapprox", "\\Colonapprox"); - // \colonsim name is same in mathtools and colonequals. - defineMacro("\\coloncolonsim", "\\Colonsim"); - - // Additional macros, implemented by analogy with mathtools definitions: - defineMacro("\\simcolon", "\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon"); - defineMacro("\\simcoloncolon", "\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon"); - defineMacro("\\approxcolon", "\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon"); - defineMacro("\\approxcoloncolon", "\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon"); - - },{}],45:[function(require,module,exports){ - - var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); - - var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - - var _createClass2 = require("babel-runtime/helpers/createClass"); - - var _createClass3 = _interopRequireDefault(_createClass2); - - var _utils = require("./utils"); - - var _utils2 = _interopRequireDefault(_utils); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /** - * This node represents a general purpose MathML node of any type. The - * constructor requires the type of node to create (for example, `"mo"` or - * `"mspace"`, corresponding to `` and `` tags). - */ - var MathNode = function () { - function MathNode(type, children) { - (0, _classCallCheck3.default)(this, MathNode); - - this.type = type; - this.attributes = {}; - this.children = children || []; - } - - /** - * Sets an attribute on a MathML node. MathML depends on attributes to convey a - * semantic content, so this is used heavily. - */ - - - (0, _createClass3.default)(MathNode, [{ - key: "setAttribute", - value: function setAttribute(name, value) { - this.attributes[name] = value; - } - - /** - * Converts the math node into a MathML-namespaced DOM element. - */ - - }, { - key: "toNode", - value: function toNode() { - var node = document.createElementNS("http://www.w3.org/1998/Math/MathML", this.type); - - for (var attr in this.attributes) { - if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) { - node.setAttribute(attr, this.attributes[attr]); - } - } - - for (var i = 0; i < this.children.length; i++) { - node.appendChild(this.children[i].toNode()); - } - - return node; - } - - /** - * Converts the math node into an HTML markup string. - */ - - }, { - key: "toMarkup", - value: function toMarkup() { - var markup = "<" + this.type; - - // Add the attributes - for (var attr in this.attributes) { - if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) { - markup += " " + attr + "=\""; - markup += _utils2.default.escape(this.attributes[attr]); - markup += "\""; - } - } - - markup += ">"; - - for (var i = 0; i < this.children.length; i++) { - markup += this.children[i].toMarkup(); - } - - markup += ""; - - return markup; - } - }]); - return MathNode; - }(); - - /** - * This node represents a piece of text. - */ - /** - * These objects store data about MathML nodes. This is the MathML equivalent - * of the types in domTree.js. Since MathML handles its own rendering, and - * since we're mainly using MathML to improve accessibility, we don't manage - * any of the styling state that the plain DOM nodes do. - * - * The `toNode` and `toMarkup` functions work simlarly to how they do in - * domTree.js, creating namespaced DOM nodes and HTML text markup respectively. - */ - - var TextNode = function () { - function TextNode(text) { - (0, _classCallCheck3.default)(this, TextNode); - - this.text = text; - } - - /** - * Converts the text node into a DOM text node. - */ - - - (0, _createClass3.default)(TextNode, [{ - key: "toNode", - value: function toNode() { - return document.createTextNode(this.text); - } - - /** - * Converts the text node into HTML markup (which is just the text itself). - */ - - }, { - key: "toMarkup", - value: function toMarkup() { - return _utils2.default.escape(this.text); - } - }]); - return TextNode; - }(); - - module.exports = { - MathNode: MathNode, - TextNode: TextNode - }; - - },{"./utils":51,"babel-runtime/helpers/classCallCheck":4,"babel-runtime/helpers/createClass":5}],46:[function(require,module,exports){ - - var _Parser = require('./Parser'); - - var _Parser2 = _interopRequireDefault(_Parser); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /** - * Parses an expression using a Parser, then returns the parsed result. - */ - var parseTree = function parseTree(toParse, settings) { - if (!(typeof toParse === 'string' || toParse instanceof String)) { - throw new TypeError('KaTeX can only parse string typed expression'); - } - var parser = new _Parser2.default(toParse, settings); - - return parser.parse(); - }; /** - * Provides a single function for parsing an expression using a Parser - * TODO(emily): Remove this - */ - - module.exports = parseTree; - - },{"./Parser":31}],47:[function(require,module,exports){ - - /** - * This file provides support to buildMathML.js and buildHTML.js - * for stretchy wide elements rendered from SVG files - * and other CSS trickery. - */ - - var buildCommon = require("./buildCommon"); - var mathMLTree = require("./mathMLTree"); - var utils = require("./utils"); - - var stretchyCodePoint = { - widehat: "^", - widetilde: "~", - undertilde: "~", - overleftarrow: "\u2190", - underleftarrow: "\u2190", - xleftarrow: "\u2190", - overrightarrow: "\u2192", - underrightarrow: "\u2192", - xrightarrow: "\u2192", - underbrace: "\u23B5", - overbrace: "\u23DE", - overleftrightarrow: "\u2194", - underleftrightarrow: "\u2194", - xleftrightarrow: "\u2194", - Overrightarrow: "\u21D2", - xRightarrow: "\u21D2", - overleftharpoon: "\u21BC", - xleftharpoonup: "\u21BC", - overrightharpoon: "\u21C0", - xrightharpoonup: "\u21C0", - xLeftarrow: "\u21D0", - xLeftrightarrow: "\u21D4", - xhookleftarrow: "\u21A9", - xhookrightarrow: "\u21AA", - xmapsto: "\u21A6", - xrightharpoondown: "\u21C1", - xleftharpoondown: "\u21BD", - xrightleftharpoons: "\u21CC", - xleftrightharpoons: "\u21CB", - xtwoheadleftarrow: "\u219E", - xtwoheadrightarrow: "\u21A0", - xLongequal: "=", - xtofrom: "\u21C4" - }; - - var mathMLnode = function mathMLnode(label) { - var node = new mathMLTree.MathNode("mo", [new mathMLTree.TextNode(stretchyCodePoint[label.substr(1)])]); - node.setAttribute("stretchy", "true"); - return node; - }; - - // In the katexImagesData object just below, the dimensions all - // correspond to path geometry inside the relevant SVG. - // For example, \rightarrow uses the same arrowhead as glyph U+2192 - // from the KaTeX Main font. The scaling factor is 1000. - // That is, inside the font, that arrowhead is 522 units tall, which - // corresponds to 0.522 em inside the document. - // And for extensible arrows, we split that distance around the math axis. - - var katexImagesData = { - // height, depth, imageName, minWidth - overleftarrow: [0.522, 0, "leftarrow", 0.5], - underleftarrow: [0.522, 0, "leftarrow", 0.5], - xleftarrow: [0.261, 0.261, "leftarrow", 0.783], - overrightarrow: [0.522, 0, "rightarrow", 0.5], - underrightarrow: [0.522, 0, "rightarrow", 0.5], - xrightarrow: [0.261, 0.261, "rightarrow", 0.783], - overbrace: [0.548, 0, "overbrace", 1.6], - underbrace: [0.548, 0, "underbrace", 1.6], - overleftrightarrow: [0.522, 0, "leftrightarrow", 0.5], - underleftrightarrow: [0.522, 0, "leftrightarrow", 0.5], - xleftrightarrow: [0.261, 0.261, "leftrightarrow", 0.783], - Overrightarrow: [0.56, 0, "doublerightarrow", 0.5], - xLeftarrow: [0.28, 0.28, "doubleleftarrow", 0.783], - xRightarrow: [0.28, 0.28, "doublerightarrow", 0.783], - xLeftrightarrow: [0.28, 0.28, "doubleleftrightarrow", 0.955], - overleftharpoon: [0.522, 0, "leftharpoon", 0.5], - overrightharpoon: [0.522, 0, "rightharpoon", 0.5], - xleftharpoonup: [0.261, 0.261, "leftharpoon", 0.783], - xrightharpoonup: [0.261, 0.261, "rightharpoon", 0.783], - xhookleftarrow: [0.261, 0.261, "hookleftarrow", 0.87], - xhookrightarrow: [0.261, 0.261, "hookrightarrow", 0.87], - overlinesegment: [0.414, 0, "linesegment", 0.5], - underlinesegment: [0.414, 0, "linesegment", 0.5], - xmapsto: [0.261, 0.261, "mapsto", 0.783], - xrightharpoondown: [0.261, 0.261, "rightharpoondown", 0.783], - xleftharpoondown: [0.261, 0.261, "leftharpoondown", 0.783], - xrightleftharpoons: [0.358, 0.358, "rightleftharpoons", 0.716], - xleftrightharpoons: [0.358, 0.358, "leftrightharpoons", 0.716], - overgroup: [0.342, 0, "overgroup", 0.87], - undergroup: [0.342, 0, "undergroup", 0.87], - xtwoheadleftarrow: [0.167, 0.167, "twoheadleftarrow", 0.86], - xtwoheadrightarrow: [0.167, 0.167, "twoheadrightarrow", 0.86], - xLongequal: [0.167, 0.167, "longequal", 0.5], - xtofrom: [0.264, 0.264, "tofrom", 0.86] - }; - - // Many of the KaTeX SVG images have been adapted from glyphs in KaTeX fonts. - // Copyright (c) 2009-2010, Design Science, Inc. () - // Copyright (c) 2014-2017 Khan Academy () - // Licensed under the SIL Open Font License, Version 1.1. - // See \nhttp://scripts.sil.org/OFL - - // Nested SVGs - // Many of the KaTeX SVG images contain a nested SVG. This is done to - // achieve a stretchy image while avoiding distortion of arrowheads or - // brace corners. - - // The inner SVG typically contains a very long (400 em) arrow. - - // The outer SVG acts like a window that exposes only part of the inner SVG. - // The outer SVG will grow or shrink to match the dimensions set by CSS. - - // The inner SVG always has a longer, thinner aspect ratio than the outer - // SVG. After the inner SVG fills 100% of the height of the outer SVG, - // there is a long arrow shaft left over. That left-over shaft is not shown. - // Instead, it is sliced off because the inner SVG is set to - // "preserveAspectRatio='... slice'". - - // Thus, the reader sees an arrow that matches the subject matter width - // without distortion. - - // Some functions, such as \cancel, need to vary their aspect ratio. These - // functions do not get the nested SVG treatment. - - // Second Brush Stroke - // Low resolution monitors struggle to display images in fine detail. - // So browsers apply anti-aliasing. A long straight arrow shaft therefore - // will sometimes appear as if it has a blurred edge. - - // To mitigate this, these SVG files contain a second "brush-stroke" on the - // arrow shafts. That is, a second long thin rectangular SVG path has been - // written directly on top of each arrow shaft. This reinforcement causes - // some of the screen pixels to display as black instead of the anti-aliased - // gray pixel that a single path would generate. So we get arrow shafts - // whose edges appear to be sharper. - - var svgPath = { - doubleleftarrow: "", - - doublerightarrow: "", - - leftarrow: "", - - rightarrow: "" - }; - - var innerSVG = { - // Since bcancel's SVG is inline and it omits the viewBox attribute, - // it's stroke-width will not vary with span area. - bcancel: "", - - cancel: "", - - // The doubleleftarrow geometry is from glyph U+21D0 in the font KaTeX Main - doubleleftarrow: ">" + svgPath["doubleleftarrow"] + "", - - // doubleleftrightarrow is from glyph U+21D4 in font KaTeX Main - doubleleftrightarrow: ">" + svgPath["doubleleftarrow"] + "\n" + svgPath["doublerightarrow"] + "", - - // doublerightarrow is from glyph U+21D2 in font KaTeX Main - doublerightarrow: ">" + svgPath["doublerightarrow"] + "", - - // hookleftarrow is from glyph U+21A9 in font KaTeX Main - hookleftarrow: ">" + svgPath["leftarrow"] + "\n", - - // hookrightarrow is from glyph U+21AA in font KaTeX Main - hookrightarrow: ">" + svgPath["rightarrow"] + "", - - // leftarrow is from glyph U+2190 in font KaTeX Main - leftarrow: ">" + svgPath["leftarrow"] + "", - - // leftharpoon is from glyph U+21BD in font KaTeX Main - leftharpoon: ">", - - // leftharpoondown is from glyph U+21BD in font KaTeX Main - leftharpoondown: ">", - - // leftrightarrow is from glyph U+2194 in font KaTeX Main - leftrightarrow: ">" + svgPath["leftarrow"] + "\n" + svgPath["rightarrow"] + "", - - // leftrightharpoons is from glyphs U+21BC/21B1 in font KaTeX Main - leftrightharpoons: ">\n", - - linesegment: ">\n", - - longequal: " viewBox='0 0 100 334' preserveAspectRatio='none'>\n", - - // mapsto is from glyph U+21A6 in font KaTeX Main - mapsto: ">" + svgPath["rightarrow"] + "", - - // overbrace is from glyphs U+23A9/23A8/23A7 in font KaTeX_Size4-Regular - overbrace: ">\n", - - // overgroup is from the MnSymbol package (public domain) - overgroup: ">", - - // rightarrow is from glyph U+2192 in font KaTeX Main - rightarrow: ">" + svgPath["rightarrow"] + "", - - // rightharpoon is from glyph U+21C0 in font KaTeX Main - rightharpoon: ">", - - // rightharpoondown is from glyph U+21C1 in font KaTeX Main - rightharpoondown: ">", - - // rightleftharpoons is from glyph U+21CC in font KaTeX Main - rightleftharpoons: ">", - - // tilde1 is a modified version of a glyph from the MnSymbol package - tilde1: " viewBox='0 0 600 260' preserveAspectRatio='none'>\n", - - // Ditto tilde2, tilde3, and tilde 4 - tilde2: " viewBox='0 0 1033 286' preserveAspectRatio='none'>\n", - - tilde3: " viewBox='0 0 2339 306' preserveAspectRatio='none'>\n", - - tilde4: " viewBox='0 0 2340 312' preserveAspectRatio='none'>\n", - - // tofrom is from glyph U+21C4 in font KaTeX AMS Regular - tofrom: ">", - - // twoheadleftarrow is from glyph U+219E in font KaTeX AMS Regular - twoheadleftarrow: ">\n", - - // twoheadrightarrow is from glyph U+21A0 in font KaTeX AMS Regular - twoheadrightarrow: ">\n", - - // underbrace is from glyphs U+23A9/23A8/23A7 in font KaTeX_Size4-Regular - underbrace: ">\n", - - // undergroup is from the MnSymbol package (public domain) - undergroup: ">", - - // widehat1 is a modified version of a glyph from the MnSymbol package - widehat1: " viewBox='0 0 1062 239' preserveAspectRatio='none'>\n", - - // Ditto widehat2, widehat3, and widehat4 - widehat2: " viewBox='0 0 2364 300' preserveAspectRatio='none'>\n", - - widehat3: " viewBox='0 0 2364 360' preserveAspectRatio='none'>\n", - - widehat4: " viewBox='0 0 2364 420' preserveAspectRatio='none'>\n", - - xcancel: "\n" - }; - - var svgSpan = function svgSpan(group, options) { - // Create a span with inline SVG for the element. - var label = group.value.label.substr(1); - var height = 0; - var depth = 0; - var imageName = ""; - var minWidth = 0; - - if (utils.contains(["widehat", "widetilde", "undertilde"], label)) { - // There are four SVG images available for each function. - // Choose a taller image when there are more characters. - var numChars = group.value.value.length; - if (numChars > 5) { - height = 0.312; - imageName = (label === "widehat" ? "widehat" : "tilde") + "4"; - } else { - var imgIndex = [1, 1, 2, 2, 3, 3][numChars]; - if (label === "widehat") { - height = [0, 0.24, 0.30, 0.30, 0.36, 0.36][numChars]; - imageName = "widehat" + imgIndex; - } else { - height = [0, 0.26, 0.30, 0.30, 0.34, 0.34][numChars]; - imageName = "tilde" + imgIndex; - } - } - } else { - var imgData = katexImagesData[label]; - height = imgData[0]; - depth = imgData[1]; - imageName = imgData[2]; - minWidth = imgData[3]; - } - - var span = buildCommon.makeSpan([], [], options); - span.height = height; - span.depth = depth; - var totalHeight = height + depth; - span.style.height = totalHeight + "em"; - if (minWidth > 0) { - span.style.minWidth = minWidth + "em"; - } - - span.innerHTML = ""; - - return span; - }; - - var encloseSpan = function encloseSpan(inner, label, pad, options) { - // Return an image span for \cancel, \bcancel, \xcancel, or \fbox - var img = void 0; - var totalHeight = inner.height + inner.depth + 2 * pad; - - if (label === "fbox") { - img = buildCommon.makeSpan(["stretchy", label], [], options); - if (options.color) { - img.style.borderColor = options.getColor(); - } - } else { - img = buildCommon.makeSpan([], [], options); - img.innerHTML = "" + innerSVG[label] + ""; - } - - img.height = totalHeight; - img.style.height = totalHeight + "em"; - - return img; - }; - - module.exports = { - encloseSpan: encloseSpan, - mathMLnode: mathMLnode, - svgSpan: svgSpan - }; - - },{"./buildCommon":34,"./mathMLTree":45,"./utils":51}],48:[function(require,module,exports){ - - /** - * This file holds a list of all no-argument functions and single-character - * symbols (like 'a' or ';'). - * - * For each of the symbols, there are three properties they can have: - * - font (required): the font to be used for this symbol. Either "main" (the - normal font), or "ams" (the ams fonts). - * - group (required): the ParseNode group type the symbol should have (i.e. - "textord", "mathord", etc). - See https://github.com/Khan/KaTeX/wiki/Examining-TeX#group-types - * - replace: the character that this symbol or function should be - * replaced with (i.e. "\phi" has a replace value of "\u03d5", the phi - * character in the main font). - * - * The outermost map in the table indicates what mode the symbols should be - * accepted in (e.g. "math" or "text"). - */ - - module.exports = { - math: {}, - text: {} - }; - - function defineSymbol(mode, font, group, replace, name, acceptUnicodeChar) { - module.exports[mode][name] = { - font: font, - group: group, - replace: replace - }; - - if (acceptUnicodeChar) { - module.exports[mode][replace] = module.exports[mode][name]; - } - } - - // Some abbreviations for commonly used strings. - // This helps minify the code, and also spotting typos using jshint. - - // modes: - var math = "math"; - var text = "text"; - - // fonts: - var main = "main"; - var ams = "ams"; - - // groups: - var accent = "accent"; - var bin = "bin"; - var close = "close"; - var inner = "inner"; - var mathord = "mathord"; - var op = "op"; - var open = "open"; - var punct = "punct"; - var rel = "rel"; - var spacing = "spacing"; - var textord = "textord"; - - // Now comes the symbol table - - // Relation Symbols - defineSymbol(math, main, rel, "\u2261", "\\equiv"); - defineSymbol(math, main, rel, "\u227A", "\\prec"); - defineSymbol(math, main, rel, "\u227B", "\\succ"); - defineSymbol(math, main, rel, "\u223C", "\\sim"); - defineSymbol(math, main, rel, "\u22A5", "\\perp"); - defineSymbol(math, main, rel, "\u2AAF", "\\preceq"); - defineSymbol(math, main, rel, "\u2AB0", "\\succeq"); - defineSymbol(math, main, rel, "\u2243", "\\simeq"); - defineSymbol(math, main, rel, "\u2223", "\\mid"); - defineSymbol(math, main, rel, "\u226A", "\\ll"); - defineSymbol(math, main, rel, "\u226B", "\\gg"); - defineSymbol(math, main, rel, "\u224D", "\\asymp"); - defineSymbol(math, main, rel, "\u2225", "\\parallel"); - defineSymbol(math, main, rel, "\u22C8", "\\bowtie"); - defineSymbol(math, main, rel, "\u2323", "\\smile"); - defineSymbol(math, main, rel, "\u2291", "\\sqsubseteq"); - defineSymbol(math, main, rel, "\u2292", "\\sqsupseteq"); - defineSymbol(math, main, rel, "\u2250", "\\doteq"); - defineSymbol(math, main, rel, "\u2322", "\\frown"); - defineSymbol(math, main, rel, "\u220B", "\\ni"); - defineSymbol(math, main, rel, "\u221D", "\\propto"); - defineSymbol(math, main, rel, "\u22A2", "\\vdash"); - defineSymbol(math, main, rel, "\u22A3", "\\dashv"); - defineSymbol(math, main, rel, "\u220B", "\\owns"); - - // Punctuation - defineSymbol(math, main, punct, ".", "\\ldotp"); - defineSymbol(math, main, punct, "\u22C5", "\\cdotp"); - - // Misc Symbols - defineSymbol(math, main, textord, "#", "\\#"); - defineSymbol(text, main, textord, "#", "\\#"); - defineSymbol(math, main, textord, "&", "\\&"); - defineSymbol(text, main, textord, "&", "\\&"); - defineSymbol(math, main, textord, "\u2135", "\\aleph"); - defineSymbol(math, main, textord, "\u2200", "\\forall"); - defineSymbol(math, main, textord, "\u210F", "\\hbar"); - defineSymbol(math, main, textord, "\u2203", "\\exists"); - defineSymbol(math, main, textord, "\u2207", "\\nabla"); - defineSymbol(math, main, textord, "\u266D", "\\flat"); - defineSymbol(math, main, textord, "\u2113", "\\ell"); - defineSymbol(math, main, textord, "\u266E", "\\natural"); - defineSymbol(math, main, textord, "\u2663", "\\clubsuit"); - defineSymbol(math, main, textord, "\u2118", "\\wp"); - defineSymbol(math, main, textord, "\u266F", "\\sharp"); - defineSymbol(math, main, textord, "\u2662", "\\diamondsuit"); - defineSymbol(math, main, textord, "\u211C", "\\Re"); - defineSymbol(math, main, textord, "\u2661", "\\heartsuit"); - defineSymbol(math, main, textord, "\u2111", "\\Im"); - defineSymbol(math, main, textord, "\u2660", "\\spadesuit"); - - // Math and Text - defineSymbol(math, main, textord, "\u2020", "\\dag"); - defineSymbol(text, main, textord, "\u2020", "\\dag"); - defineSymbol(text, main, textord, "\u2020", "\\textdagger"); - defineSymbol(math, main, textord, "\u2021", "\\ddag"); - defineSymbol(text, main, textord, "\u2021", "\\ddag"); - defineSymbol(text, main, textord, "\u2020", "\\textdaggerdbl"); - - // Large Delimiters - defineSymbol(math, main, close, "\u23B1", "\\rmoustache"); - defineSymbol(math, main, open, "\u23B0", "\\lmoustache"); - defineSymbol(math, main, close, "\u27EF", "\\rgroup"); - defineSymbol(math, main, open, "\u27EE", "\\lgroup"); - - // Binary Operators - defineSymbol(math, main, bin, "\u2213", "\\mp"); - defineSymbol(math, main, bin, "\u2296", "\\ominus"); - defineSymbol(math, main, bin, "\u228E", "\\uplus"); - defineSymbol(math, main, bin, "\u2293", "\\sqcap"); - defineSymbol(math, main, bin, "\u2217", "\\ast"); - defineSymbol(math, main, bin, "\u2294", "\\sqcup"); - defineSymbol(math, main, bin, "\u25EF", "\\bigcirc"); - defineSymbol(math, main, bin, "\u2219", "\\bullet"); - defineSymbol(math, main, bin, "\u2021", "\\ddagger"); - defineSymbol(math, main, bin, "\u2240", "\\wr"); - defineSymbol(math, main, bin, "\u2A3F", "\\amalg"); - - // Arrow Symbols - defineSymbol(math, main, rel, "\u27F5", "\\longleftarrow"); - defineSymbol(math, main, rel, "\u21D0", "\\Leftarrow"); - defineSymbol(math, main, rel, "\u27F8", "\\Longleftarrow"); - defineSymbol(math, main, rel, "\u27F6", "\\longrightarrow"); - defineSymbol(math, main, rel, "\u21D2", "\\Rightarrow"); - defineSymbol(math, main, rel, "\u27F9", "\\Longrightarrow"); - defineSymbol(math, main, rel, "\u2194", "\\leftrightarrow"); - defineSymbol(math, main, rel, "\u27F7", "\\longleftrightarrow"); - defineSymbol(math, main, rel, "\u21D4", "\\Leftrightarrow"); - defineSymbol(math, main, rel, "\u27FA", "\\Longleftrightarrow"); - defineSymbol(math, main, rel, "\u21A6", "\\mapsto"); - defineSymbol(math, main, rel, "\u27FC", "\\longmapsto"); - defineSymbol(math, main, rel, "\u2197", "\\nearrow"); - defineSymbol(math, main, rel, "\u21A9", "\\hookleftarrow"); - defineSymbol(math, main, rel, "\u21AA", "\\hookrightarrow"); - defineSymbol(math, main, rel, "\u2198", "\\searrow"); - defineSymbol(math, main, rel, "\u21BC", "\\leftharpoonup"); - defineSymbol(math, main, rel, "\u21C0", "\\rightharpoonup"); - defineSymbol(math, main, rel, "\u2199", "\\swarrow"); - defineSymbol(math, main, rel, "\u21BD", "\\leftharpoondown"); - defineSymbol(math, main, rel, "\u21C1", "\\rightharpoondown"); - defineSymbol(math, main, rel, "\u2196", "\\nwarrow"); - defineSymbol(math, main, rel, "\u21CC", "\\rightleftharpoons"); - - // AMS Negated Binary Relations - defineSymbol(math, ams, rel, "\u226E", "\\nless"); - defineSymbol(math, ams, rel, "\uE010", "\\nleqslant"); - defineSymbol(math, ams, rel, "\uE011", "\\nleqq"); - defineSymbol(math, ams, rel, "\u2A87", "\\lneq"); - defineSymbol(math, ams, rel, "\u2268", "\\lneqq"); - defineSymbol(math, ams, rel, "\uE00C", "\\lvertneqq"); - defineSymbol(math, ams, rel, "\u22E6", "\\lnsim"); - defineSymbol(math, ams, rel, "\u2A89", "\\lnapprox"); - defineSymbol(math, ams, rel, "\u2280", "\\nprec"); - defineSymbol(math, ams, rel, "\u22E0", "\\npreceq"); - defineSymbol(math, ams, rel, "\u22E8", "\\precnsim"); - defineSymbol(math, ams, rel, "\u2AB9", "\\precnapprox"); - defineSymbol(math, ams, rel, "\u2241", "\\nsim"); - defineSymbol(math, ams, rel, "\uE006", "\\nshortmid"); - defineSymbol(math, ams, rel, "\u2224", "\\nmid"); - defineSymbol(math, ams, rel, "\u22AC", "\\nvdash"); - defineSymbol(math, ams, rel, "\u22AD", "\\nvDash"); - defineSymbol(math, ams, rel, "\u22EA", "\\ntriangleleft"); - defineSymbol(math, ams, rel, "\u22EC", "\\ntrianglelefteq"); - defineSymbol(math, ams, rel, "\u228A", "\\subsetneq"); - defineSymbol(math, ams, rel, "\uE01A", "\\varsubsetneq"); - defineSymbol(math, ams, rel, "\u2ACB", "\\subsetneqq"); - defineSymbol(math, ams, rel, "\uE017", "\\varsubsetneqq"); - defineSymbol(math, ams, rel, "\u226F", "\\ngtr"); - defineSymbol(math, ams, rel, "\uE00F", "\\ngeqslant"); - defineSymbol(math, ams, rel, "\uE00E", "\\ngeqq"); - defineSymbol(math, ams, rel, "\u2A88", "\\gneq"); - defineSymbol(math, ams, rel, "\u2269", "\\gneqq"); - defineSymbol(math, ams, rel, "\uE00D", "\\gvertneqq"); - defineSymbol(math, ams, rel, "\u22E7", "\\gnsim"); - defineSymbol(math, ams, rel, "\u2A8A", "\\gnapprox"); - defineSymbol(math, ams, rel, "\u2281", "\\nsucc"); - defineSymbol(math, ams, rel, "\u22E1", "\\nsucceq"); - defineSymbol(math, ams, rel, "\u22E9", "\\succnsim"); - defineSymbol(math, ams, rel, "\u2ABA", "\\succnapprox"); - defineSymbol(math, ams, rel, "\u2246", "\\ncong"); - defineSymbol(math, ams, rel, "\uE007", "\\nshortparallel"); - defineSymbol(math, ams, rel, "\u2226", "\\nparallel"); - defineSymbol(math, ams, rel, "\u22AF", "\\nVDash"); - defineSymbol(math, ams, rel, "\u22EB", "\\ntriangleright"); - defineSymbol(math, ams, rel, "\u22ED", "\\ntrianglerighteq"); - defineSymbol(math, ams, rel, "\uE018", "\\nsupseteqq"); - defineSymbol(math, ams, rel, "\u228B", "\\supsetneq"); - defineSymbol(math, ams, rel, "\uE01B", "\\varsupsetneq"); - defineSymbol(math, ams, rel, "\u2ACC", "\\supsetneqq"); - defineSymbol(math, ams, rel, "\uE019", "\\varsupsetneqq"); - defineSymbol(math, ams, rel, "\u22AE", "\\nVdash"); - defineSymbol(math, ams, rel, "\u2AB5", "\\precneqq"); - defineSymbol(math, ams, rel, "\u2AB6", "\\succneqq"); - defineSymbol(math, ams, rel, "\uE016", "\\nsubseteqq"); - defineSymbol(math, ams, bin, "\u22B4", "\\unlhd"); - defineSymbol(math, ams, bin, "\u22B5", "\\unrhd"); - - // AMS Negated Arrows - defineSymbol(math, ams, rel, "\u219A", "\\nleftarrow"); - defineSymbol(math, ams, rel, "\u219B", "\\nrightarrow"); - defineSymbol(math, ams, rel, "\u21CD", "\\nLeftarrow"); - defineSymbol(math, ams, rel, "\u21CF", "\\nRightarrow"); - defineSymbol(math, ams, rel, "\u21AE", "\\nleftrightarrow"); - defineSymbol(math, ams, rel, "\u21CE", "\\nLeftrightarrow"); - - // AMS Misc - defineSymbol(math, ams, rel, "\u25B3", "\\vartriangle"); - defineSymbol(math, ams, textord, "\u210F", "\\hslash"); - defineSymbol(math, ams, textord, "\u25BD", "\\triangledown"); - defineSymbol(math, ams, textord, "\u25CA", "\\lozenge"); - defineSymbol(math, ams, textord, "\u24C8", "\\circledS"); - defineSymbol(math, ams, textord, "\xAE", "\\circledR"); - defineSymbol(text, ams, textord, "\xAE", "\\circledR"); - defineSymbol(math, ams, textord, "\u2221", "\\measuredangle"); - defineSymbol(math, ams, textord, "\u2204", "\\nexists"); - defineSymbol(math, ams, textord, "\u2127", "\\mho"); - defineSymbol(math, ams, textord, "\u2132", "\\Finv"); - defineSymbol(math, ams, textord, "\u2141", "\\Game"); - defineSymbol(math, ams, textord, "k", "\\Bbbk"); - defineSymbol(math, ams, textord, "\u2035", "\\backprime"); - defineSymbol(math, ams, textord, "\u25B2", "\\blacktriangle"); - defineSymbol(math, ams, textord, "\u25BC", "\\blacktriangledown"); - defineSymbol(math, ams, textord, "\u25A0", "\\blacksquare"); - defineSymbol(math, ams, textord, "\u29EB", "\\blacklozenge"); - defineSymbol(math, ams, textord, "\u2605", "\\bigstar"); - defineSymbol(math, ams, textord, "\u2222", "\\sphericalangle"); - defineSymbol(math, ams, textord, "\u2201", "\\complement"); - defineSymbol(math, ams, textord, "\xF0", "\\eth"); - defineSymbol(math, ams, textord, "\u2571", "\\diagup"); - defineSymbol(math, ams, textord, "\u2572", "\\diagdown"); - defineSymbol(math, ams, textord, "\u25A1", "\\square"); - defineSymbol(math, ams, textord, "\u25A1", "\\Box"); - defineSymbol(math, ams, textord, "\u25CA", "\\Diamond"); - defineSymbol(math, ams, textord, "\xA5", "\\yen"); - defineSymbol(math, ams, textord, "\u2713", "\\checkmark"); - defineSymbol(text, ams, textord, "\u2713", "\\checkmark"); - - // AMS Hebrew - defineSymbol(math, ams, textord, "\u2136", "\\beth"); - defineSymbol(math, ams, textord, "\u2138", "\\daleth"); - defineSymbol(math, ams, textord, "\u2137", "\\gimel"); - - // AMS Greek - defineSymbol(math, ams, textord, "\u03DD", "\\digamma"); - defineSymbol(math, ams, textord, "\u03F0", "\\varkappa"); - - // AMS Delimiters - defineSymbol(math, ams, open, "\u250C", "\\ulcorner"); - defineSymbol(math, ams, close, "\u2510", "\\urcorner"); - defineSymbol(math, ams, open, "\u2514", "\\llcorner"); - defineSymbol(math, ams, close, "\u2518", "\\lrcorner"); - - // AMS Binary Relations - defineSymbol(math, ams, rel, "\u2266", "\\leqq"); - defineSymbol(math, ams, rel, "\u2A7D", "\\leqslant"); - defineSymbol(math, ams, rel, "\u2A95", "\\eqslantless"); - defineSymbol(math, ams, rel, "\u2272", "\\lesssim"); - defineSymbol(math, ams, rel, "\u2A85", "\\lessapprox"); - defineSymbol(math, ams, rel, "\u224A", "\\approxeq"); - defineSymbol(math, ams, bin, "\u22D6", "\\lessdot"); - defineSymbol(math, ams, rel, "\u22D8", "\\lll"); - defineSymbol(math, ams, rel, "\u2276", "\\lessgtr"); - defineSymbol(math, ams, rel, "\u22DA", "\\lesseqgtr"); - defineSymbol(math, ams, rel, "\u2A8B", "\\lesseqqgtr"); - defineSymbol(math, ams, rel, "\u2251", "\\doteqdot"); - defineSymbol(math, ams, rel, "\u2253", "\\risingdotseq"); - defineSymbol(math, ams, rel, "\u2252", "\\fallingdotseq"); - defineSymbol(math, ams, rel, "\u223D", "\\backsim"); - defineSymbol(math, ams, rel, "\u22CD", "\\backsimeq"); - defineSymbol(math, ams, rel, "\u2AC5", "\\subseteqq"); - defineSymbol(math, ams, rel, "\u22D0", "\\Subset"); - defineSymbol(math, ams, rel, "\u228F", "\\sqsubset"); - defineSymbol(math, ams, rel, "\u227C", "\\preccurlyeq"); - defineSymbol(math, ams, rel, "\u22DE", "\\curlyeqprec"); - defineSymbol(math, ams, rel, "\u227E", "\\precsim"); - defineSymbol(math, ams, rel, "\u2AB7", "\\precapprox"); - defineSymbol(math, ams, rel, "\u22B2", "\\vartriangleleft"); - defineSymbol(math, ams, rel, "\u22B4", "\\trianglelefteq"); - defineSymbol(math, ams, rel, "\u22A8", "\\vDash"); - defineSymbol(math, ams, rel, "\u22AA", "\\Vvdash"); - defineSymbol(math, ams, rel, "\u2323", "\\smallsmile"); - defineSymbol(math, ams, rel, "\u2322", "\\smallfrown"); - defineSymbol(math, ams, rel, "\u224F", "\\bumpeq"); - defineSymbol(math, ams, rel, "\u224E", "\\Bumpeq"); - defineSymbol(math, ams, rel, "\u2267", "\\geqq"); - defineSymbol(math, ams, rel, "\u2A7E", "\\geqslant"); - defineSymbol(math, ams, rel, "\u2A96", "\\eqslantgtr"); - defineSymbol(math, ams, rel, "\u2273", "\\gtrsim"); - defineSymbol(math, ams, rel, "\u2A86", "\\gtrapprox"); - defineSymbol(math, ams, bin, "\u22D7", "\\gtrdot"); - defineSymbol(math, ams, rel, "\u22D9", "\\ggg"); - defineSymbol(math, ams, rel, "\u2277", "\\gtrless"); - defineSymbol(math, ams, rel, "\u22DB", "\\gtreqless"); - defineSymbol(math, ams, rel, "\u2A8C", "\\gtreqqless"); - defineSymbol(math, ams, rel, "\u2256", "\\eqcirc"); - defineSymbol(math, ams, rel, "\u2257", "\\circeq"); - defineSymbol(math, ams, rel, "\u225C", "\\triangleq"); - defineSymbol(math, ams, rel, "\u223C", "\\thicksim"); - defineSymbol(math, ams, rel, "\u2248", "\\thickapprox"); - defineSymbol(math, ams, rel, "\u2AC6", "\\supseteqq"); - defineSymbol(math, ams, rel, "\u22D1", "\\Supset"); - defineSymbol(math, ams, rel, "\u2290", "\\sqsupset"); - defineSymbol(math, ams, rel, "\u227D", "\\succcurlyeq"); - defineSymbol(math, ams, rel, "\u22DF", "\\curlyeqsucc"); - defineSymbol(math, ams, rel, "\u227F", "\\succsim"); - defineSymbol(math, ams, rel, "\u2AB8", "\\succapprox"); - defineSymbol(math, ams, rel, "\u22B3", "\\vartriangleright"); - defineSymbol(math, ams, rel, "\u22B5", "\\trianglerighteq"); - defineSymbol(math, ams, rel, "\u22A9", "\\Vdash"); - defineSymbol(math, ams, rel, "\u2223", "\\shortmid"); - defineSymbol(math, ams, rel, "\u2225", "\\shortparallel"); - defineSymbol(math, ams, rel, "\u226C", "\\between"); - defineSymbol(math, ams, rel, "\u22D4", "\\pitchfork"); - defineSymbol(math, ams, rel, "\u221D", "\\varpropto"); - defineSymbol(math, ams, rel, "\u25C0", "\\blacktriangleleft"); - defineSymbol(math, ams, rel, "\u2234", "\\therefore"); - defineSymbol(math, ams, rel, "\u220D", "\\backepsilon"); - defineSymbol(math, ams, rel, "\u25B6", "\\blacktriangleright"); - defineSymbol(math, ams, rel, "\u2235", "\\because"); - defineSymbol(math, ams, rel, "\u22D8", "\\llless"); - defineSymbol(math, ams, rel, "\u22D9", "\\gggtr"); - defineSymbol(math, ams, bin, "\u22B2", "\\lhd"); - defineSymbol(math, ams, bin, "\u22B3", "\\rhd"); - defineSymbol(math, ams, rel, "\u2242", "\\eqsim"); - defineSymbol(math, main, rel, "\u22C8", "\\Join"); - defineSymbol(math, ams, rel, "\u2251", "\\Doteq"); - - // AMS Binary Operators - defineSymbol(math, ams, bin, "\u2214", "\\dotplus"); - defineSymbol(math, ams, bin, "\u2216", "\\smallsetminus"); - defineSymbol(math, ams, bin, "\u22D2", "\\Cap"); - defineSymbol(math, ams, bin, "\u22D3", "\\Cup"); - defineSymbol(math, ams, bin, "\u2A5E", "\\doublebarwedge"); - defineSymbol(math, ams, bin, "\u229F", "\\boxminus"); - defineSymbol(math, ams, bin, "\u229E", "\\boxplus"); - defineSymbol(math, ams, bin, "\u22C7", "\\divideontimes"); - defineSymbol(math, ams, bin, "\u22C9", "\\ltimes"); - defineSymbol(math, ams, bin, "\u22CA", "\\rtimes"); - defineSymbol(math, ams, bin, "\u22CB", "\\leftthreetimes"); - defineSymbol(math, ams, bin, "\u22CC", "\\rightthreetimes"); - defineSymbol(math, ams, bin, "\u22CF", "\\curlywedge"); - defineSymbol(math, ams, bin, "\u22CE", "\\curlyvee"); - defineSymbol(math, ams, bin, "\u229D", "\\circleddash"); - defineSymbol(math, ams, bin, "\u229B", "\\circledast"); - defineSymbol(math, ams, bin, "\u22C5", "\\centerdot"); - defineSymbol(math, ams, bin, "\u22BA", "\\intercal"); - defineSymbol(math, ams, bin, "\u22D2", "\\doublecap"); - defineSymbol(math, ams, bin, "\u22D3", "\\doublecup"); - defineSymbol(math, ams, bin, "\u22A0", "\\boxtimes"); - - // AMS Arrows - defineSymbol(math, ams, rel, "\u21E2", "\\dashrightarrow"); - defineSymbol(math, ams, rel, "\u21E0", "\\dashleftarrow"); - defineSymbol(math, ams, rel, "\u21C7", "\\leftleftarrows"); - defineSymbol(math, ams, rel, "\u21C6", "\\leftrightarrows"); - defineSymbol(math, ams, rel, "\u21DA", "\\Lleftarrow"); - defineSymbol(math, ams, rel, "\u219E", "\\twoheadleftarrow"); - defineSymbol(math, ams, rel, "\u21A2", "\\leftarrowtail"); - defineSymbol(math, ams, rel, "\u21AB", "\\looparrowleft"); - defineSymbol(math, ams, rel, "\u21CB", "\\leftrightharpoons"); - defineSymbol(math, ams, rel, "\u21B6", "\\curvearrowleft"); - defineSymbol(math, ams, rel, "\u21BA", "\\circlearrowleft"); - defineSymbol(math, ams, rel, "\u21B0", "\\Lsh"); - defineSymbol(math, ams, rel, "\u21C8", "\\upuparrows"); - defineSymbol(math, ams, rel, "\u21BF", "\\upharpoonleft"); - defineSymbol(math, ams, rel, "\u21C3", "\\downharpoonleft"); - defineSymbol(math, ams, rel, "\u22B8", "\\multimap"); - defineSymbol(math, ams, rel, "\u21AD", "\\leftrightsquigarrow"); - defineSymbol(math, ams, rel, "\u21C9", "\\rightrightarrows"); - defineSymbol(math, ams, rel, "\u21C4", "\\rightleftarrows"); - defineSymbol(math, ams, rel, "\u21A0", "\\twoheadrightarrow"); - defineSymbol(math, ams, rel, "\u21A3", "\\rightarrowtail"); - defineSymbol(math, ams, rel, "\u21AC", "\\looparrowright"); - defineSymbol(math, ams, rel, "\u21B7", "\\curvearrowright"); - defineSymbol(math, ams, rel, "\u21BB", "\\circlearrowright"); - defineSymbol(math, ams, rel, "\u21B1", "\\Rsh"); - defineSymbol(math, ams, rel, "\u21CA", "\\downdownarrows"); - defineSymbol(math, ams, rel, "\u21BE", "\\upharpoonright"); - defineSymbol(math, ams, rel, "\u21C2", "\\downharpoonright"); - defineSymbol(math, ams, rel, "\u21DD", "\\rightsquigarrow"); - defineSymbol(math, ams, rel, "\u21DD", "\\leadsto"); - defineSymbol(math, ams, rel, "\u21DB", "\\Rrightarrow"); - defineSymbol(math, ams, rel, "\u21BE", "\\restriction"); - - defineSymbol(math, main, textord, "\u2018", "`"); - defineSymbol(math, main, textord, "$", "\\$"); - defineSymbol(text, main, textord, "$", "\\$"); - defineSymbol(text, main, textord, "$", "\\textdollar"); - defineSymbol(math, main, textord, "%", "\\%"); - defineSymbol(text, main, textord, "%", "\\%"); - defineSymbol(math, main, textord, "_", "\\_"); - defineSymbol(text, main, textord, "_", "\\_"); - defineSymbol(text, main, textord, "_", "\\textunderscore"); - defineSymbol(math, main, textord, "\u2220", "\\angle"); - defineSymbol(math, main, textord, "\u221E", "\\infty"); - defineSymbol(math, main, textord, "\u2032", "\\prime"); - defineSymbol(math, main, textord, "\u25B3", "\\triangle"); - defineSymbol(math, main, textord, "\u0393", "\\Gamma", true); - defineSymbol(math, main, textord, "\u0394", "\\Delta", true); - defineSymbol(math, main, textord, "\u0398", "\\Theta", true); - defineSymbol(math, main, textord, "\u039B", "\\Lambda", true); - defineSymbol(math, main, textord, "\u039E", "\\Xi", true); - defineSymbol(math, main, textord, "\u03A0", "\\Pi", true); - defineSymbol(math, main, textord, "\u03A3", "\\Sigma", true); - defineSymbol(math, main, textord, "\u03A5", "\\Upsilon", true); - defineSymbol(math, main, textord, "\u03A6", "\\Phi", true); - defineSymbol(math, main, textord, "\u03A8", "\\Psi", true); - defineSymbol(math, main, textord, "\u03A9", "\\Omega", true); - defineSymbol(math, main, textord, "\xAC", "\\neg"); - defineSymbol(math, main, textord, "\xAC", "\\lnot"); - defineSymbol(math, main, textord, "\u22A4", "\\top"); - defineSymbol(math, main, textord, "\u22A5", "\\bot"); - defineSymbol(math, main, textord, "\u2205", "\\emptyset"); - defineSymbol(math, ams, textord, "\u2205", "\\varnothing"); - defineSymbol(math, main, mathord, "\u03B1", "\\alpha", true); - defineSymbol(math, main, mathord, "\u03B2", "\\beta", true); - defineSymbol(math, main, mathord, "\u03B3", "\\gamma", true); - defineSymbol(math, main, mathord, "\u03B4", "\\delta", true); - defineSymbol(math, main, mathord, "\u03F5", "\\epsilon", true); - defineSymbol(math, main, mathord, "\u03B6", "\\zeta", true); - defineSymbol(math, main, mathord, "\u03B7", "\\eta", true); - defineSymbol(math, main, mathord, "\u03B8", "\\theta", true); - defineSymbol(math, main, mathord, "\u03B9", "\\iota", true); - defineSymbol(math, main, mathord, "\u03BA", "\\kappa", true); - defineSymbol(math, main, mathord, "\u03BB", "\\lambda", true); - defineSymbol(math, main, mathord, "\u03BC", "\\mu", true); - defineSymbol(math, main, mathord, "\u03BD", "\\nu", true); - defineSymbol(math, main, mathord, "\u03BE", "\\xi", true); - defineSymbol(math, main, mathord, "\u03BF", "\\omicron", true); - defineSymbol(math, main, mathord, "\u03C0", "\\pi", true); - defineSymbol(math, main, mathord, "\u03C1", "\\rho", true); - defineSymbol(math, main, mathord, "\u03C3", "\\sigma", true); - defineSymbol(math, main, mathord, "\u03C4", "\\tau", true); - defineSymbol(math, main, mathord, "\u03C5", "\\upsilon", true); - defineSymbol(math, main, mathord, "\u03D5", "\\phi", true); - defineSymbol(math, main, mathord, "\u03C7", "\\chi", true); - defineSymbol(math, main, mathord, "\u03C8", "\\psi", true); - defineSymbol(math, main, mathord, "\u03C9", "\\omega", true); - defineSymbol(math, main, mathord, "\u03B5", "\\varepsilon", true); - defineSymbol(math, main, mathord, "\u03D1", "\\vartheta", true); - defineSymbol(math, main, mathord, "\u03D6", "\\varpi", true); - defineSymbol(math, main, mathord, "\u03F1", "\\varrho", true); - defineSymbol(math, main, mathord, "\u03C2", "\\varsigma", true); - defineSymbol(math, main, mathord, "\u03C6", "\\varphi", true); - defineSymbol(math, main, bin, "\u2217", "*"); - defineSymbol(math, main, bin, "+", "+"); - defineSymbol(math, main, bin, "\u2212", "-"); - defineSymbol(math, main, bin, "\u22C5", "\\cdot"); - defineSymbol(math, main, bin, "\u2218", "\\circ"); - defineSymbol(math, main, bin, "\xF7", "\\div"); - defineSymbol(math, main, bin, "\xB1", "\\pm"); - defineSymbol(math, main, bin, "\xD7", "\\times"); - defineSymbol(math, main, bin, "\u2229", "\\cap"); - defineSymbol(math, main, bin, "\u222A", "\\cup"); - defineSymbol(math, main, bin, "\u2216", "\\setminus"); - defineSymbol(math, main, bin, "\u2227", "\\land"); - defineSymbol(math, main, bin, "\u2228", "\\lor"); - defineSymbol(math, main, bin, "\u2227", "\\wedge"); - defineSymbol(math, main, bin, "\u2228", "\\vee"); - defineSymbol(math, main, textord, "\u221A", "\\surd"); - defineSymbol(math, main, open, "(", "("); - defineSymbol(math, main, open, "[", "["); - defineSymbol(math, main, open, "\u27E8", "\\langle"); - defineSymbol(math, main, open, "\u2223", "\\lvert"); - defineSymbol(math, main, open, "\u2225", "\\lVert"); - defineSymbol(math, main, close, ")", ")"); - defineSymbol(math, main, close, "]", "]"); - defineSymbol(math, main, close, "?", "?"); - defineSymbol(math, main, close, "!", "!"); - defineSymbol(math, main, close, "\u27E9", "\\rangle"); - defineSymbol(math, main, close, "\u2223", "\\rvert"); - defineSymbol(math, main, close, "\u2225", "\\rVert"); - defineSymbol(math, main, rel, "=", "="); - defineSymbol(math, main, rel, "<", "<"); - defineSymbol(math, main, rel, ">", ">"); - defineSymbol(math, main, rel, ":", ":"); - defineSymbol(math, main, rel, "\u2248", "\\approx"); - defineSymbol(math, main, rel, "\u2245", "\\cong"); - defineSymbol(math, main, rel, "\u2265", "\\ge"); - defineSymbol(math, main, rel, "\u2265", "\\geq"); - defineSymbol(math, main, rel, "\u2190", "\\gets"); - defineSymbol(math, main, rel, ">", "\\gt"); - defineSymbol(math, main, rel, "\u2208", "\\in"); - defineSymbol(math, main, rel, "\u2209", "\\notin"); - defineSymbol(math, main, rel, "\u0338", "\\not"); - defineSymbol(math, main, rel, "\u2282", "\\subset"); - defineSymbol(math, main, rel, "\u2283", "\\supset"); - defineSymbol(math, main, rel, "\u2286", "\\subseteq"); - defineSymbol(math, main, rel, "\u2287", "\\supseteq"); - defineSymbol(math, ams, rel, "\u2288", "\\nsubseteq"); - defineSymbol(math, ams, rel, "\u2289", "\\nsupseteq"); - defineSymbol(math, main, rel, "\u22A8", "\\models"); - defineSymbol(math, main, rel, "\u2190", "\\leftarrow"); - defineSymbol(math, main, rel, "\u2264", "\\le"); - defineSymbol(math, main, rel, "\u2264", "\\leq"); - defineSymbol(math, main, rel, "<", "\\lt"); - defineSymbol(math, main, rel, "\u2260", "\\ne"); - defineSymbol(math, main, rel, "\u2260", "\\neq"); - defineSymbol(math, main, rel, "\u2192", "\\rightarrow"); - defineSymbol(math, main, rel, "\u2192", "\\to"); - defineSymbol(math, ams, rel, "\u2271", "\\ngeq"); - defineSymbol(math, ams, rel, "\u2270", "\\nleq"); - defineSymbol(math, main, spacing, null, "\\!"); - defineSymbol(math, main, spacing, "\xA0", "\\ "); - defineSymbol(math, main, spacing, "\xA0", "~"); - defineSymbol(math, main, spacing, null, "\\,"); - defineSymbol(math, main, spacing, null, "\\:"); - defineSymbol(math, main, spacing, null, "\\;"); - defineSymbol(math, main, spacing, null, "\\enspace"); - defineSymbol(math, main, spacing, null, "\\qquad"); - defineSymbol(math, main, spacing, null, "\\quad"); - defineSymbol(math, main, spacing, "\xA0", "\\space"); - defineSymbol(math, main, punct, ",", ","); - defineSymbol(math, main, punct, ";", ";"); - defineSymbol(math, main, punct, ":", "\\colon"); - defineSymbol(math, ams, bin, "\u22BC", "\\barwedge"); - defineSymbol(math, ams, bin, "\u22BB", "\\veebar"); - defineSymbol(math, main, bin, "\u2299", "\\odot"); - defineSymbol(math, main, bin, "\u2295", "\\oplus"); - defineSymbol(math, main, bin, "\u2297", "\\otimes"); - defineSymbol(math, main, textord, "\u2202", "\\partial"); - defineSymbol(math, main, bin, "\u2298", "\\oslash"); - defineSymbol(math, ams, bin, "\u229A", "\\circledcirc"); - defineSymbol(math, ams, bin, "\u22A1", "\\boxdot"); - defineSymbol(math, main, bin, "\u25B3", "\\bigtriangleup"); - defineSymbol(math, main, bin, "\u25BD", "\\bigtriangledown"); - defineSymbol(math, main, bin, "\u2020", "\\dagger"); - defineSymbol(math, main, bin, "\u22C4", "\\diamond"); - defineSymbol(math, main, bin, "\u22C6", "\\star"); - defineSymbol(math, main, bin, "\u25C3", "\\triangleleft"); - defineSymbol(math, main, bin, "\u25B9", "\\triangleright"); - defineSymbol(math, main, open, "{", "\\{"); - defineSymbol(text, main, textord, "{", "\\{"); - defineSymbol(text, main, textord, "{", "\\textbraceleft"); - defineSymbol(math, main, close, "}", "\\}"); - defineSymbol(text, main, textord, "}", "\\}"); - defineSymbol(text, main, textord, "}", "\\textbraceright"); - defineSymbol(math, main, open, "{", "\\lbrace"); - defineSymbol(math, main, close, "}", "\\rbrace"); - defineSymbol(math, main, open, "[", "\\lbrack"); - defineSymbol(math, main, close, "]", "\\rbrack"); - defineSymbol(text, main, textord, "<", "\\textless"); // in T1 fontenc - defineSymbol(text, main, textord, ">", "\\textgreater"); // in T1 fontenc - defineSymbol(math, main, open, "\u230A", "\\lfloor"); - defineSymbol(math, main, close, "\u230B", "\\rfloor"); - defineSymbol(math, main, open, "\u2308", "\\lceil"); - defineSymbol(math, main, close, "\u2309", "\\rceil"); - defineSymbol(math, main, textord, "\\", "\\backslash"); - defineSymbol(math, main, textord, "\u2223", "|"); - defineSymbol(math, main, textord, "\u2223", "\\vert"); - defineSymbol(text, main, textord, "|", "\\textbar"); // in T1 fontenc - defineSymbol(math, main, textord, "\u2225", "\\|"); - defineSymbol(math, main, textord, "\u2225", "\\Vert"); - defineSymbol(text, main, textord, "\u2225", "\\textbardbl"); - defineSymbol(math, main, rel, "\u2191", "\\uparrow"); - defineSymbol(math, main, rel, "\u21D1", "\\Uparrow"); - defineSymbol(math, main, rel, "\u2193", "\\downarrow"); - defineSymbol(math, main, rel, "\u21D3", "\\Downarrow"); - defineSymbol(math, main, rel, "\u2195", "\\updownarrow"); - defineSymbol(math, main, rel, "\u21D5", "\\Updownarrow"); - defineSymbol(math, main, op, "\u2210", "\\coprod"); - defineSymbol(math, main, op, "\u22C1", "\\bigvee"); - defineSymbol(math, main, op, "\u22C0", "\\bigwedge"); - defineSymbol(math, main, op, "\u2A04", "\\biguplus"); - defineSymbol(math, main, op, "\u22C2", "\\bigcap"); - defineSymbol(math, main, op, "\u22C3", "\\bigcup"); - defineSymbol(math, main, op, "\u222B", "\\int"); - defineSymbol(math, main, op, "\u222B", "\\intop"); - defineSymbol(math, main, op, "\u222C", "\\iint"); - defineSymbol(math, main, op, "\u222D", "\\iiint"); - defineSymbol(math, main, op, "\u220F", "\\prod"); - defineSymbol(math, main, op, "\u2211", "\\sum"); - defineSymbol(math, main, op, "\u2A02", "\\bigotimes"); - defineSymbol(math, main, op, "\u2A01", "\\bigoplus"); - defineSymbol(math, main, op, "\u2A00", "\\bigodot"); - defineSymbol(math, main, op, "\u222E", "\\oint"); - defineSymbol(math, main, op, "\u2A06", "\\bigsqcup"); - defineSymbol(math, main, op, "\u222B", "\\smallint"); - defineSymbol(text, main, inner, "\u2026", "\\textellipsis"); - defineSymbol(math, main, inner, "\u2026", "\\mathellipsis"); - defineSymbol(text, main, inner, "\u2026", "\\ldots", true); - defineSymbol(math, main, inner, "\u2026", "\\ldots", true); - defineSymbol(math, main, inner, "\u22EF", "\\cdots", true); - defineSymbol(math, main, inner, "\u22F1", "\\ddots", true); - defineSymbol(math, main, textord, "\u22EE", "\\vdots", true); - defineSymbol(math, main, accent, "\xB4", "\\acute"); - defineSymbol(math, main, accent, "`", "\\grave"); - defineSymbol(math, main, accent, "\xA8", "\\ddot"); - defineSymbol(math, main, accent, "~", "\\tilde"); - defineSymbol(math, main, accent, "\xAF", "\\bar"); - defineSymbol(math, main, accent, "\u02D8", "\\breve"); - defineSymbol(math, main, accent, "\u02C7", "\\check"); - defineSymbol(math, main, accent, "^", "\\hat"); - defineSymbol(math, main, accent, "\u20D7", "\\vec"); - defineSymbol(math, main, accent, "\u02D9", "\\dot"); - defineSymbol(math, main, mathord, "\u0131", "\\imath"); - defineSymbol(math, main, mathord, "\u0237", "\\jmath"); - defineSymbol(text, main, accent, "\u02CA", "\\'"); // acute - defineSymbol(text, main, accent, "\u02CB", "\\`"); // grave - defineSymbol(text, main, accent, "\u02C6", "\\^"); // circumflex - defineSymbol(text, main, accent, "\u02DC", "\\~"); // tilde - defineSymbol(text, main, accent, "\u02C9", "\\="); // macron - defineSymbol(text, main, accent, "\u02D8", "\\u"); // breve - defineSymbol(text, main, accent, "\u02D9", "\\."); // dot above - defineSymbol(text, main, accent, "\u02DA", "\\r"); // ring above - defineSymbol(text, main, accent, "\u02C7", "\\v"); // caron - defineSymbol(text, main, accent, "\xA8", '\\"'); // diaresis - defineSymbol(text, main, accent, "\u030B", "\\H"); // double acute - - defineSymbol(text, main, textord, "\u2013", "--"); - defineSymbol(text, main, textord, "\u2013", "\\textendash"); - defineSymbol(text, main, textord, "\u2014", "---"); - defineSymbol(text, main, textord, "\u2014", "\\textemdash"); - defineSymbol(text, main, textord, "\u2018", "`"); - defineSymbol(text, main, textord, "\u2018", "\\textquoteleft"); - defineSymbol(text, main, textord, "\u2019", "'"); - defineSymbol(text, main, textord, "\u2019", "\\textquoteright"); - defineSymbol(text, main, textord, "\u201C", "``"); - defineSymbol(text, main, textord, "\u201C", "\\textquotedblleft"); - defineSymbol(text, main, textord, "\u201D", "''"); - defineSymbol(text, main, textord, "\u201D", "\\textquotedblright"); - defineSymbol(math, main, textord, "\xB0", "\\degree"); - defineSymbol(text, main, textord, "\xB0", "\\degree"); - // TODO: In LaTeX, \pounds can generate a different character in text and math - // mode, but among our fonts, only Main-Italic defines this character "163". - defineSymbol(math, main, mathord, "\xA3", "\\pounds"); - defineSymbol(math, main, mathord, "\xA3", "\\mathsterling"); - defineSymbol(text, main, mathord, "\xA3", "\\pounds"); - defineSymbol(text, main, mathord, "\xA3", "\\textsterling"); - defineSymbol(math, ams, textord, "\u2720", "\\maltese"); - defineSymbol(text, ams, textord, "\u2720", "\\maltese"); - - defineSymbol(text, main, spacing, "\xA0", "\\ "); - defineSymbol(text, main, spacing, "\xA0", " "); - defineSymbol(text, main, spacing, "\xA0", "~"); - - // There are lots of symbols which are the same, so we add them in afterwards. - - // All of these are textords in math mode - var mathTextSymbols = "0123456789/@.\""; - for (var i = 0; i < mathTextSymbols.length; i++) { - var ch = mathTextSymbols.charAt(i); - defineSymbol(math, main, textord, ch, ch); - } - - // All of these are textords in text mode - var textSymbols = "0123456789!@*()-=+[]<>|\";:?/.,"; - for (var _i = 0; _i < textSymbols.length; _i++) { - var _ch = textSymbols.charAt(_i); - defineSymbol(text, main, textord, _ch, _ch); - } - - // All of these are textords in text mode, and mathords in math mode - var letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; - for (var _i2 = 0; _i2 < letters.length; _i2++) { - var _ch2 = letters.charAt(_i2); - defineSymbol(math, main, mathord, _ch2, _ch2); - defineSymbol(text, main, textord, _ch2, _ch2); - } - - // Latin-1 letters - for (var _i3 = 0x00C0; _i3 <= 0x00D6; _i3++) { - var _ch3 = String.fromCharCode(_i3); - defineSymbol(math, main, mathord, _ch3, _ch3); - defineSymbol(text, main, textord, _ch3, _ch3); - } - - for (var _i4 = 0x00D8; _i4 <= 0x00F6; _i4++) { - var _ch4 = String.fromCharCode(_i4); - defineSymbol(math, main, mathord, _ch4, _ch4); - defineSymbol(text, main, textord, _ch4, _ch4); - } - - for (var _i5 = 0x00F8; _i5 <= 0x00FF; _i5++) { - var _ch5 = String.fromCharCode(_i5); - defineSymbol(math, main, mathord, _ch5, _ch5); - defineSymbol(text, main, textord, _ch5, _ch5); - } - - // Cyrillic - for (var _i6 = 0x0410; _i6 <= 0x044F; _i6++) { - var _ch6 = String.fromCharCode(_i6); - defineSymbol(text, main, textord, _ch6, _ch6); - } - - // Unicode versions of existing characters - defineSymbol(text, main, textord, "\u2013", "–"); - defineSymbol(text, main, textord, "\u2014", "—"); - defineSymbol(text, main, textord, "\u2018", "‘"); - defineSymbol(text, main, textord, "\u2019", "’"); - defineSymbol(text, main, textord, "\u201C", "“"); - defineSymbol(text, main, textord, "\u201D", "”"); - - },{}],49:[function(require,module,exports){ - - var hangulRegex = /[\uAC00-\uD7AF]/; - - // This regex combines - // - CJK symbols and punctuation: [\u3000-\u303F] - // - Hiragana: [\u3040-\u309F] - // - Katakana: [\u30A0-\u30FF] - // - CJK ideograms: [\u4E00-\u9FAF] - // - Hangul syllables: [\uAC00-\uD7AF] - // - Fullwidth punctuation: [\uFF00-\uFF60] - // Notably missing are halfwidth Katakana and Romanji glyphs. - var cjkRegex = /[\u3000-\u30FF\u4E00-\u9FAF\uAC00-\uD7AF\uFF00-\uFF60]/; - - module.exports = { - cjkRegex: cjkRegex, - hangulRegex: hangulRegex - }; - - },{}],50:[function(require,module,exports){ - - var _ParseError = require("./ParseError"); - - var _ParseError2 = _interopRequireDefault(_ParseError); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - // This table gives the number of TeX pts in one of each *absolute* TeX unit. - // Thus, multiplying a length by this number converts the length from units - // into pts. Dividing the result by ptPerEm gives the number of ems - // *assuming* a font size of ptPerEm (normal size, normal style). - var ptPerUnit = { - // https://en.wikibooks.org/wiki/LaTeX/Lengths and - // https://tex.stackexchange.com/a/8263 - "pt": 1, // TeX point - "mm": 7227 / 2540, // millimeter - "cm": 7227 / 254, // centimeter - "in": 72.27, // inch - "bp": 803 / 800, // big (PostScript) points - "pc": 12, // pica - "dd": 1238 / 1157, // didot - "cc": 14856 / 1157, // cicero (12 didot) - "nd": 685 / 642, // new didot - "nc": 1370 / 107, // new cicero (12 new didot) - "sp": 1 / 65536, // scaled point (TeX's internal smallest unit) - // https://tex.stackexchange.com/a/41371 - "px": 803 / 800 }; - - // Dictionary of relative units, for fast validity testing. - /* eslint no-console:0 */ - - /** - * This file does conversion between units. In particular, it provides - * calculateSize to convert other units into ems. - */ - - var relativeUnit = { - "ex": true, - "em": true, - "mu": true - }; - - /** - * Determine whether the specified unit (either a string defining the unit - * or a "size" parse node containing a unit field) is valid. - */ - var validUnit = function validUnit(unit) { - if (unit.unit) { - unit = unit.unit; - } - return unit in ptPerUnit || unit in relativeUnit || unit === "ex"; - }; - - /* - * Convert a "size" parse node (with numeric "number" and string "unit" fields, - * as parsed by functions.js argType "size") into a CSS em value for the - * current style/scale. `options` gives the current options. - */ - var calculateSize = function calculateSize(sizeValue, options) { - var scale = void 0; - if (sizeValue.unit in ptPerUnit) { - // Absolute units - scale = ptPerUnit[sizeValue.unit] // Convert unit to pt - / options.fontMetrics().ptPerEm // Convert pt to CSS em - / options.sizeMultiplier; // Unscale to make absolute units - } else if (sizeValue.unit === "mu") { - // `mu` units scale with scriptstyle/scriptscriptstyle. - scale = options.fontMetrics().cssEmPerMu; - } else { - // Other relative units always refer to the *textstyle* font - // in the current size. - var unitOptions = void 0; - if (options.style.isTight()) { - // isTight() means current style is script/scriptscript. - unitOptions = options.havingStyle(options.style.text()); - } else { - unitOptions = options; - } - // TODO: In TeX these units are relative to the quad of the current - // *text* font, e.g. cmr10. KaTeX instead uses values from the - // comparably-sized *Computer Modern symbol* font. At 10pt, these - // match. At 7pt and 5pt, they differ: cmr7=1.138894, cmsy7=1.170641; - // cmr5=1.361133, cmsy5=1.472241. Consider $\scriptsize a\kern1emb$. - // TeX \showlists shows a kern of 1.13889 * fontsize; - // KaTeX shows a kern of 1.171 * fontsize. - if (sizeValue.unit === "ex") { - scale = unitOptions.fontMetrics().xHeight; - } else if (sizeValue.unit === "em") { - scale = unitOptions.fontMetrics().quad; - } else { - throw new _ParseError2.default("Invalid unit: '" + sizeValue.unit + "'"); - } - if (unitOptions !== options) { - scale *= unitOptions.sizeMultiplier / options.sizeMultiplier; - } - } - return sizeValue.number * scale; - }; - - module.exports = { - validUnit: validUnit, - calculateSize: calculateSize - }; - - },{"./ParseError":29}],51:[function(require,module,exports){ - - /** - * This file contains a list of utility functions which are useful in other - * files. - */ - - /** - * Provide an `indexOf` function which works in IE8, but defers to native if - * possible. - */ - var nativeIndexOf = Array.prototype.indexOf; - var indexOf = function indexOf(list, elem) { - if (list == null) { - return -1; - } - if (nativeIndexOf && list.indexOf === nativeIndexOf) { - return list.indexOf(elem); - } - var l = list.length; - for (var i = 0; i < l; i++) { - if (list[i] === elem) { - return i; - } - } - return -1; - }; - - /** - * Return whether an element is contained in a list - */ - var contains = function contains(list, elem) { - return indexOf(list, elem) !== -1; - }; - - /** - * Provide a default value if a setting is undefined - */ - var deflt = function deflt(setting, defaultIfUndefined) { - return setting === undefined ? defaultIfUndefined : setting; - }; - - // hyphenate and escape adapted from Facebook's React under Apache 2 license - - var uppercase = /([A-Z])/g; - var hyphenate = function hyphenate(str) { - return str.replace(uppercase, "-$1").toLowerCase(); - }; - - var ESCAPE_LOOKUP = { - "&": "&", - ">": ">", - "<": "<", - "\"": """, - "'": "'" - }; - - var ESCAPE_REGEX = /[&><"']/g; - - function escaper(match) { - return ESCAPE_LOOKUP[match]; - } - - /** - * Escapes text to prevent scripting attacks. - * - * @param {*} text Text value to escape. - * @return {string} An escaped string. - */ - function escape(text) { - return ("" + text).replace(ESCAPE_REGEX, escaper); - } - - /** - * A function to set the text content of a DOM element in all supported - * browsers. Note that we don't define this if there is no document. - */ - var setTextContent = void 0; - if (typeof document !== "undefined") { - var testNode = document.createElement("span"); - if ("textContent" in testNode) { - setTextContent = function setTextContent(node, text) { - node.textContent = text; - }; - } else { - setTextContent = function setTextContent(node, text) { - node.innerText = text; - }; - } - } - - /** - * A function to clear a node. - */ - function clearNode(node) { - setTextContent(node, ""); - } - - module.exports = { - contains: contains, - deflt: deflt, - escape: escape, - hyphenate: hyphenate, - indexOf: indexOf, - setTextContent: setTextContent, - clearNode: clearNode - }; - - },{}]},{},[1])(1) - }); - }); - - var katex$2 = unwrapExports(katex$1); - - // Copyright 2018 The Distill Template Authors - // - // 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. - - // This is a straight concatenation of code from KaTeX's contrib folder, - // but we aren't using some of their helpers that don't work well outside a browser environment. - - /*global katex */ - - const findEndOfMath = function(delimiter, text, startIndex) { - // Adapted from - // https://github.com/Khan/perseus/blob/master/src/perseus-markdown.jsx - let index = startIndex; - let braceLevel = 0; - - const delimLength = delimiter.length; - - while (index < text.length) { - const character = text[index]; - - if ( - braceLevel <= 0 && - text.slice(index, index + delimLength) === delimiter - ) { - return index; - } else if (character === "\\") { - index++; - } else if (character === "{") { - braceLevel++; - } else if (character === "}") { - braceLevel--; - } - - index++; - } - - return -1; - }; - - const splitAtDelimiters = function(startData, leftDelim, rightDelim, display) { - const finalData = []; - - for (let i = 0; i < startData.length; i++) { - if (startData[i].type === "text") { - const text = startData[i].data; - - let lookingForLeft = true; - let currIndex = 0; - let nextIndex; - - nextIndex = text.indexOf(leftDelim); - if (nextIndex !== -1) { - currIndex = nextIndex; - finalData.push({ - type: "text", - data: text.slice(0, currIndex) - }); - lookingForLeft = false; - } - - while (true) { - // eslint-disable-line no-constant-condition - if (lookingForLeft) { - nextIndex = text.indexOf(leftDelim, currIndex); - if (nextIndex === -1) { - break; - } - - finalData.push({ - type: "text", - data: text.slice(currIndex, nextIndex) - }); - - currIndex = nextIndex; - } else { - nextIndex = findEndOfMath( - rightDelim, - text, - currIndex + leftDelim.length - ); - if (nextIndex === -1) { - break; - } - - finalData.push({ - type: "math", - data: text.slice(currIndex + leftDelim.length, nextIndex), - rawData: text.slice(currIndex, nextIndex + rightDelim.length), - display: display - }); - - currIndex = nextIndex + rightDelim.length; - } - - lookingForLeft = !lookingForLeft; - } - - finalData.push({ - type: "text", - data: text.slice(currIndex) - }); - } else { - finalData.push(startData[i]); - } - } - - return finalData; - }; - - const splitWithDelimiters = function(text, delimiters) { - let data = [{ type: "text", data: text }]; - for (let i = 0; i < delimiters.length; i++) { - const delimiter = delimiters[i]; - data = splitAtDelimiters( - data, - delimiter.left, - delimiter.right, - delimiter.display || false - ); - } - return data; - }; - - /* Note: optionsCopy is mutated by this method. If it is ever exposed in the - * API, we should copy it before mutating. - */ - const renderMathInText = function(text, optionsCopy) { - const data = splitWithDelimiters(text, optionsCopy.delimiters); - const fragment = document.createDocumentFragment(); - - for (let i = 0; i < data.length; i++) { - if (data[i].type === "text") { - fragment.appendChild(document.createTextNode(data[i].data)); - } else { - const tag = document.createElement("d-math"); - const math = data[i].data; - // Override any display mode defined in the settings with that - // defined by the text itself - optionsCopy.displayMode = data[i].display; - try { - tag.textContent = math; - if (optionsCopy.displayMode) { - tag.setAttribute("block", ""); - } - } catch (e) { - if (!(e instanceof katex.ParseError)) { - throw e; - } - optionsCopy.errorCallback( - "KaTeX auto-render: Failed to parse `" + data[i].data + "` with ", - e - ); - fragment.appendChild(document.createTextNode(data[i].rawData)); - continue; - } - fragment.appendChild(tag); - } - } - - return fragment; - }; - - const renderElem = function(elem, optionsCopy) { - for (let i = 0; i < elem.childNodes.length; i++) { - const childNode = elem.childNodes[i]; - if (childNode.nodeType === 3) { - // Text node - const text = childNode.textContent; - if (optionsCopy.mightHaveMath(text)) { - const frag = renderMathInText(text, optionsCopy); - i += frag.childNodes.length - 1; - elem.replaceChild(frag, childNode); - } - } else if (childNode.nodeType === 1) { - // Element node - const shouldRender = - optionsCopy.ignoredTags.indexOf(childNode.nodeName.toLowerCase()) === - -1; - - if (shouldRender) { - renderElem(childNode, optionsCopy); - } - } - // Otherwise, it's something else, and ignore it. - } - }; - - const defaultAutoRenderOptions = { - delimiters: [ - { left: "$$", right: "$$", display: true }, - { left: "\\[", right: "\\]", display: true }, - { left: "\\(", right: "\\)", display: false } - // LaTeX uses this, but it ruins the display of normal `$` in text: - // {left: '$', right: '$', display: false}, - ], - - ignoredTags: [ - "script", - "noscript", - "style", - "textarea", - "pre", - "code", - "svg" - ], - - errorCallback: function(msg, err) { - console.error(msg, err); - } - }; - - const renderMathInElement = function(elem, options) { - if (!elem) { - throw new Error("No element provided to render"); - } - - const optionsCopy = Object.assign({}, defaultAutoRenderOptions, options); - const delimiterStrings = optionsCopy.delimiters.flatMap(d => [ - d.left, - d.right - ]); - const mightHaveMath = text => - delimiterStrings.some(d => text.indexOf(d) !== -1); - optionsCopy.mightHaveMath = mightHaveMath; - renderElem(elem, optionsCopy); - }; - - // Copyright 2018 The Distill Template Authors - - function Mathematics(dom, data) { - let needsCSS = false; - const body = dom.querySelector('body'); - - if (!body) { - console.warn("No body tag found!"); - return; - } - - if (data.katex && data.katex.delimiters) { - global.document = dom; - renderMathInElement(body, data.katex); - } - - // render d-math tags - const mathTags = body.querySelectorAll('d-math'); - if (mathTags.length > 0) { - needsCSS = true; - console.warn(`Prerendering ${mathTags.length} math tags...`); - for (const mathTag of mathTags) { - const localOptions = { displayMode: mathTag.hasAttribute('block') }; - const options = Object.assign(localOptions, data.katex); - const html = katex$2.renderToString(mathTag.textContent, options); - const container = dom.createElement('span'); - container.innerHTML = html; - mathTag.parentElement.insertBefore(container, mathTag); - mathTag.parentElement.removeChild(mathTag); - } - } - - if (needsCSS) { - const katexCSSTag = ''; - dom.head.insertAdjacentHTML('beforeend', katexCSSTag); - } - - } - - var favicon = "iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA99JREFUeNrsG4t1ozDMzQSM4A2ODUonKBucN2hugtIJ6E1AboLcBiQTkJsANiAb9OCd/OpzMWBJBl5TvaeXPiiyJetry0J8wW3D3QpjRh3GjneXDq+fSQA9s2mH9x3KDhN4foJfCb8N/Jrv+2fnDn8vLRQOplWHVYdvHZYdZsBcZP1vBmh/n8DzEmhUQDPaOuP9pFuY+JwJHwHnCLQE2tnWBGEyXozY9xCUgHMhhjE2I4heVWtgIkZ83wL6Qgxj1obfWBxymPwe+b00BCCRNPbwfb60yleAkkBHGT5AEehIYz7eJrFDMF9CvH4wwhcGHiHMneFvLDQwlwvMLQq58trRcYBWfYn0A0OgHWQUSu25mE+BnoYKnnEJoeIWAifzOv7vLWd2ZKRfWAIme3tOiUaQ3UnLkb0xj1FxRIeEGKaGIHOs9nEgLaaA9i0JRYo1Ic67wJW86KSKE/ZAM8KuVMk8ITVhmxUxJ3Cl2xlm9Vtkeju1+mpCQNxaEGNCY8bs9X2YqwNoQeGjBWut/ma0QAWy/TqAsHx9wSya3I5IRxOfTC+leG+kA/4vSeEcGBtNUN6byhu3+keEZCQJUNh8MAO7HL6H8pQLnsW/Hd4T4lv93TPjfM7A46iEEqbB5EDOvwYNW6tGNZzT/o+CZ6sqZ6wUtR/wf7mi/VL8iNciT6rHih48Y55b4nKCHJCCzb4y0nwFmin3ZEMIoLfZF8F7nncFmvnWBaBj7CGAYA/WGJsUwHdYqVDwAmNsUgAx4CGgAA7GOOxADYOFWOaIKifuVYzmOpREqA21Mo7aPsgiY1PhOMAmxtR+AUbYH3Id2wc0SAFIQTsn9IUGWR8k9jx3vtXSiAacFxTAGakBk9UudkNECd6jLe+6HrshshvIuC6IlLMRy7er+JpcKma24SlE4cFZSZJDGVVrsNvitQhQrDhW0jfiOLfFd47C42eHT56D/BK0To+58Ahj+cAT8HT1UWlfLZCCd/uKawzU0Rh2EyIX/Icqth3niG8ybNroezwe6khdCNxRN+l4XGdOLVLlOOt2hTRJlr1ETIuMAltVTMz70mJrkdGAaZLSmnBEqmAE32JCMmuTlCnRgsBENtOUpHhvvsYIL0ibnBkaC6QvKcR7738GKp0AKnim7xgUSNv1bpS8QwhBt8r+EP47v/oyRK/S34yJ9nT+AN0Tkm4OdB9E4BsmXM3SnMlRFUrtp6IDpV2eKzdYvF3etm3KhQksbOLChGkSmcBdmcEwvqkrMy5BzL00NZeu3qPYJOOuCc+5NjcWKXQxFvTa3NoXJ4d8in7fiAUuTt781dkvuHX4K8AA2Usy7yNKLy0AAAAASUVORK5CYII=\n"; - - /*! +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("fs")):"function"==typeof define&&define.amd?define(["exports","fs"],t):t((e=e||self).dl={},e.fs)}(this,function(e,t){"use strict";function n(e,t){e.title=t.title,t.published&&(t.published instanceof Date?e.publishedDate=t.published:t.published.constructor===String&&(e.publishedDate=new Date(t.published))),t.publishedDate&&(t.publishedDate instanceof Date?e.publishedDate=t.publishedDate:t.publishedDate.constructor===String?e.publishedDate=new Date(t.publishedDate):console.error("Don't know what to do with published date: "+t.publishedDate)),e.description=t.description,e.authors=t.authors.map(e=>new te(e)),e.katex=t.katex,e.password=t.password,t.doi&&(e.doi=t.doi)} +// Copyright 2018 The Distill Template Authors +function r(e){for(let t of e.authors){const e=Boolean(t.affiliation),n=Boolean(t.affiliations);if(e)if(n)console.warn(`Author ${t.author} has both old-style ("affiliation" & "affiliationURL") and new style ("affiliations") affiliation information!`);else{let e={name:t.affiliation};t.affiliationURL&&(e.url=t.affiliationURL),t.affiliations=[e]}}return e}function i(e){const t=e.firstElementChild;if(t){if("json"==t.getAttribute("type").split("/")[1]){const e=t.textContent;return r(JSON.parse(e))}console.error("Distill only supports JSON frontmatter tags anymore; no more YAML.")}else console.error("You added a frontmatter tag but did not provide a script tag with front matter data in it. Please take a look at our templates.");return{}} +// Copyright 2018 The Distill Template Authors +function a(e,t){const r=e.querySelector("d-front-matter");r?n(t,i(r)):console.warn("No front matter tag found!")}function o(){throw new Error("Dynamic requires are not currently supported by rollup-plugin-commonjs")}function s(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e["default"]:e}function l(e,t){return e(t={exports:{}},t.exports),t.exports} +// Copyright 2018 The Distill Template Authors +function u(e){return e.replace(/[\t\n ]+/g," ").replace(/{\\["^`.'acu~Hvs]( )?([a-zA-Z])}/g,(e,t,n)=>n).replace(/{\\([a-zA-Z])}/g,(e,t)=>t)}function d(e){const t=new Map,n=re.toJSON(e);for(const e of n){for(const[t,n]of Object.entries(e.entryTags))e.entryTags[t.toLowerCase()]=u(n);e.entryTags.type=e.entryType,t.set(e.citationKey,e.entryTags)}return t}function c(e){return`@article{${e.slug},\n author = {${e.bibtexAuthors}},\n title = {${e.title}},\n journal = {${e.journal.title}},\n year = {${e.publishedYear}},\n note = {${e.url}},\n doi = {${e.doi}}\n}`} +// Copyright 2018 The Distill Template Authors +function h(e){const t=e.firstElementChild;if(t&&"SCRIPT"===t.tagName){if("text/bibtex"==t.type){return d(e.firstElementChild.textContent)}if("text/json"==t.type)return new Map(JSON.parse(t.textContent));console.warn("Unsupported bibliography script tag type: "+t.type)}else console.warn("Bibliography did not have any script tag.")} +// Copyright 2018 The Distill Template Authors +function p(e,n){const r=e.querySelector("d-bibliography");if(!r)return void console.warn("No bibliography tag found!");const i=r.getAttribute("src");if(i){const a=n.inputDirectory+"/"+i,o=d(t.readFileSync(a,"utf-8")),s=e.createElement("script");s.type="text/json",s.textContent=JSON.stringify([...o]),r.appendChild(s),r.removeAttribute("src")}n.bibliography=h(r)} +// Copyright 2018 The Distill Template Authors +function f(e=document){const t=new Set,n=e.querySelectorAll("d-cite");for(const e of n){const n=(e.getAttribute("key")||e.getAttribute("bibtex-key")).split(",").map(e=>e.trim());for(const e of n)t.add(e)}return[...t]}function m(e,t,n,r){if(null==e.author)return"";var i=e.author.split(" and ");let a=i.map(e=>{if(-1!=(e=e.trim()).indexOf(","))var n=e.split(",")[0].trim(),r=e.split(",")[1];else if(-1!=e.indexOf(" "))n=e.split(" ").slice(-1)[0].trim(),r=e.split(" ").slice(0,-1).join(" ");else n=e.trim();var i="";return r!=undefined&&(i=(i=r.trim().split(" ").map(e=>e.trim()[0])).join(".")+"."),t.replace("${F}",r).replace("${L}",n).replace("${I}",i).trim()});if(i.length>1){var o=a.slice(0,i.length-1).join(n);return o+=(r||n)+a[i.length-1]}return a[0]}function g(e){var t=e.journal||e.booktitle||"";if("volume"in e){var n=e.issue||e.number;n=n!=undefined?"("+n+")":"",t+=", Vol "+e.volume+n}return"pages"in e&&(t+=", pp. "+e.pages),""!=t&&(t+=". "),"publisher"in e&&"."!=(t+=e.publisher)[t.length-1]&&(t+="."),t}function v(e){if("url"in e){var t=e.url,n=/arxiv\.org\/abs\/([0-9\.]*)/.exec(t);if(null!=n&&(t=`http://arxiv.org/pdf/${n[1]}.pdf`),".pdf"==t.slice(-4))var r="PDF";else if(".html"==t.slice(-5))r="HTML";return`  [${r||"link"}]`}return""}function b(e,t){return"doi"in e?`${t?"
      ":""} DOI: ${e.doi}`:""}function y(e){return''+e.title+" "}function x(e){if(e){var t=y(e);return t+=v(e)+"
      ",e.author&&(t+=m(e,"${L}, ${I}",", "," and "),(e.year||e.date)&&(t+=", ")),e.year||e.date?t+=(e.year||e.date)+". ":t+=". ",t+=g(e),t+=b(e)}return"?"} +// Copyright 2018 The Distill Template Authors +function w(e,t){const n=new Set(t.citations),r=f(e);for(const e of r)n.add(e);t.citations=Array.from(n)} +// Copyright 2018 The Distill Template Authors +function k(e){const t=e.querySelector("head");if(e.querySelector("html").getAttribute("lang")||e.querySelector("html").setAttribute("lang","en"),!e.querySelector("meta[charset]")){const n=e.createElement("meta");n.setAttribute("charset","utf-8"),t.appendChild(n)}if(!e.querySelector("meta[name=viewport]")){const n=e.createElement("meta");n.setAttribute("name","viewport"),n.setAttribute("content","width=device-width, initial-scale=1"),t.appendChild(n)}} +// Copyright 2018 The Distill Template Authors +function M(e){return`\n \n`} +// Copyright 2018 The Distill Template Authors +function S(e,t){const n=e.querySelector("d-byline");n&&(n.innerHTML=M(t))} +// Copyright 2018 The Distill Template Authors +function z(e,t){const n=e.body,r=n.querySelector("d-article");if(!r)return void console.warn("No d-article tag found; skipping adding optional components!");let i=e.querySelector("d-byline");i||(t.authors?(i=e.createElement("d-byline"),n.insertBefore(i,r)):console.warn("No authors found in front matter; please add them before submission!"));let a=e.querySelector("d-title");a||(a=e.createElement("d-title"),n.insertBefore(a,i));let o=a.querySelector("h1");o||((o=e.createElement("h1")).textContent=t.title,a.insertBefore(o,a.firstChild));const s="undefined"!=typeof t.password;let l=n.querySelector("d-interstitial");if(s&&!l){const r="undefined"!=typeof window,i=r&&window.location.hostname.includes("localhost");r&&i||((l=e.createElement("d-interstitial")).password=t.password,n.insertBefore(l,n.firstChild))}else!s&&l&&l.parentElement.removeChild(this);let u=e.querySelector("d-appendix");u||(u=e.createElement("d-appendix"),e.body.appendChild(u));let d=e.querySelector("d-footnote-list");d||(d=e.createElement("d-footnote-list"),u.appendChild(d));let c=e.querySelector("d-citation-list");c||(c=e.createElement("d-citation-list"),u.appendChild(c))} +// Copyright 2018 The Distill Template Authors +function A(e,t){let n=!1;const r=e.querySelector("body");if(!r)return void console.warn("No body tag found!");t.katex&&t.katex.delimiters&&(global.document=e,ce(r,t.katex));const i=r.querySelectorAll("d-math");if(i.length>0){n=!0,console.warn(`Prerendering ${i.length} math tags...`);for(const n of i){const r={displayMode:n.hasAttribute("block")},i=Object.assign(r,t.katex),a=ie.renderToString(n.textContent,i),o=e.createElement("span");o.innerHTML=a,n.parentElement.insertBefore(o,n),n.parentElement.removeChild(n)}}if(n){const t='';e.head.insertAdjacentHTML("beforeend",t)}}function C(e){var t,n=""+e,r=pe.exec(n);if(!r)return n;var i="",a=0,o=0;for(a=r.index;a\n`)}let r=e.querySelector("head"),i=e=>N(r,e);if(i(`\n \n \n \n `),t.title&&i(`\n ${fe(t.title)}\n `),t.url&&i(`\n \n `),t.publishedDate&&i(`\n \n \n \n \n `),t.updatedDate&&i(`\n \n `),(t.authors||[]).forEach(e=>{N(r,`\n `)}),i(`\n \n \n \n \n \n \n \n \n `),i(`\n \n \n \n \n \n \n \n \n `),t.doiSuffix){i("\n \n"),n("citation_title",t.title),n("citation_fulltext_html_url",t.url),n("citation_volume",t.volume),n("citation_issue",t.issue),n("citation_firstpage",t.doiSuffix?`e${t.doiSuffix}`:undefined),n("citation_doi",t.doi);let e=t.journal||{};n("citation_journal_title",e.full_title||e.title),n("citation_journal_abbrev",e.abbrev_title),n("citation_issn",e.issn),n("citation_publisher",e.publisher),n("citation_fulltext_world_readable","",!0),t.publishedDate&&(n("citation_online_date",`${t.publishedYear}/${t.publishedMonthPadded}/${t.publishedDayPadded}`),n("citation_publication_date",`${t.publishedYear}/${t.publishedMonthPadded}/${t.publishedDayPadded}`)),(t.authors||[]).forEach(e=>{n("citation_author",`${e.lastName}, ${e.firstName}`),n("citation_author_institution",e.affiliation)})}else console.warn("No DOI suffix in data; not adding citation meta tags!");t.citations?t.citations.forEach(e=>{if(t.bibliography&&t.bibliography.has(e)){n("citation_reference",E(t.bibliography.get(e)))}else console.warn("No bibliography data found for "+e)}):console.warn("No citations found; not adding any references meta tags!")}function N(e,t){e.innerHTML+=t}function E(e){var t=`citation_title=${e.title};`;e.author&&""!==e.author&&e.author.split(" and ").forEach(e=>{let n,r;-1!=(e=e.trim()).indexOf(",")?(n=e.split(",")[0].trim(),r=e.split(",")[1].trim()):(n=e.split(" ").slice(-1)[0].trim(),r=e.split(" ").slice(0,-1).join(" ")),t+=`citation_author=${r} ${n};`}),"year"in e&&(t+=`citation_publication_date=${e.year};`);let n=/https?:\/\/arxiv\.org\/pdf\/([0-9]*\.[0-9]*)\.pdf/.exec(e.url);return(n=(n=n||/https?:\/\/arxiv\.org\/abs\/([0-9]*\.[0-9]*)/.exec(e.url))||/arXiv preprint arXiv:([0-9]*\.[0-9]*)/.exec(e.journal))&&n[1]?t+=`citation_arxiv_id=${n[1]};`:("journal"in e&&(t+=`citation_journal_title=${fe(e.journal)};`),"volume"in e&&(t+=`citation_volume=${fe(e.volume)};`),("issue"in e||"number"in e)&&(t+=`citation_number=${fe(e.issue||e.number)};`),t)}function R(e){const t="distill-prerendered-styles";if(!e.getElementById(t)){const n=e.createElement("style");n.id=t,n.type="text/css";const r=e.createTextNode(me);n.appendChild(r);const i=e.head.querySelector("script");e.head.insertBefore(n,i)}} +// Copyright 2018 The Distill Template Authors +function L(e,t){let n='\n \n \n

      Table of contents

      \n
        ';for(const e of t){const t="D-TITLE"==e.parentElement.tagName,r=e.getAttribute("no-toc");if(t||r)continue;const i=e.textContent;let a='
      • '+i+"
      • ";"H3"==e.tagName?a="
          "+a+"
        ":a+="
        ",n+=a}n+="
      ",e.innerHTML=n} +// Copyright 2018 The Distill Template Authors +function O(e){const t=e.querySelector("d-article"),n=e.querySelector("d-toc");if(n){L(n,t.querySelectorAll("h2, h3")),n.setAttribute("prerendered","true")}} +// Copyright 2018 The Distill Template Authors +function q(e){for(var t=e.createTreeWalker(e.body,e.defaultView.NodeFilter.SHOW_TEXT);t.nextNode();){var n=t.currentNode,r=n.nodeValue;r&&_(n)&&(r=D(r=B(r)),n.nodeValue=r)}}function _(e){var t=e.parentElement,n=!!(t&&t.getAttribute&&t.getAttribute("class"))&&(t.getAttribute("class").includes("katex")||t.getAttribute("class").includes("MathJax"));return t&&"SCRIPT"!==t.nodeName&&"STYLE"!==t.nodeName&&"CODE"!==t.nodeName&&"PRE"!==t.nodeName&&"SPAN"!==t.nodeName&&"D-HEADER"!==t.nodeName&&"D-BYLINE"!==t.nodeName&&"D-MATH"!==t.nodeName&&"D-CODE"!==t.nodeName&&"D-BIBLIOGRAPHY"!==t.nodeName&&"D-FOOTER"!==t.nodeName&&"D-APPENDIX"!==t.nodeName&&"D-FRONTMATTER"!==t.nodeName&&"D-TOC"!==t.nodeName&&8!==t.nodeType&&!n} +/*! + * typeset - Typesetting for the web + * @version v0.1.6 + * @link https://github.com/davidmerfield/Typeset.js + * @author David Merfield + */function D(e){var t="\xa0",n=/([\xab\xbf\xa1]) /g,r=/ ([!?:;.,\u203d\xbb])/g;return e=(e=(e=(e=(e=e.replace(/--/g,"\u2014")).replace(/\s*\u2014\s*/g,"\u2009\u2014\u2009")).replace(/\.\.\./g,"\u2026")).replace(n,"$1"+t)).replace(r,t+"$1")}function B(e){return e=(e=(e=(e=(e=e.replace(/(\W|^)"([^\s!?:;.,\u203d\xbb])/g,"$1\u201c$2").replace(/(\u201c[^"]*)"([^"]*$|[^\u201c"]*\u201c)/g,"$1\u201d$2").replace(/([^0-9])"/g,"$1\u201d").replace(/(\W|^)'(\S)/g,"$1\u2018$2").replace(/([a-z])'([a-z])/gi,"$1\u2019$2").replace(/((\u2018[^']*)|[a-z])'([^0-9]|$)/gi,"$1\u2019$3").replace(/(\u2018)([0-9]{2}[^\u2019]*)(\u2018([^0-9]|$)|$|\u2019[a-z])/gi,"\u2019$2$3").replace(/(\B|^)\u2018(?=([^\u2019]*\u2019\b)*([^\u2019\u2018]*\W[\u2019\u2018]\b|[^\u2019\u2018]*$))/gi,"$1\u2019").replace(/'''/g,"\u2034").replace(/("|'')/g,"\u2033").replace(/'/g,"\u2032")).replace(/\\\u201c/,'"')).replace(/\\\u201d/,'"')).replace(/\\\u2019/,"'")).replace(/\\\u2018/,"'")} +// Copyright 2018 The Distill Template Authors +function I(e){const t=e.querySelector('script[src*="template.v2.js"]');t?t.parentNode.removeChild(t):console.debug("FYI: Did not find template tag when trying to remove it. You may not have added it. Be aware that our polyfills will add it.");const n=e.createElement("script");n.src="https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/1.0.17/webcomponents-loader.js",e.head.insertBefore(n,e.head.firstChild);const r=e.createElement("script");r.innerHTML=ge,e.head.insertBefore(r,e.head.firstChild)} +// Copyright 2018 The Distill Template Authors +function H(e,t,n=document){if(t.size>0){e.style.display="";let r=e.querySelector(".references");if(r)r.innerHTML="";else{const t=n.createElement("style");t.innerHTML=ve,e.appendChild(t);const i=n.createElement("h3");i.id="references",i.textContent="References",e.appendChild(i),(r=n.createElement("ol")).id="references-list",r.className="references",e.appendChild(r)}for(const[e,i]of t){const t=n.createElement("li");t.id=e,t.innerHTML=x(i),r.appendChild(t)}}else e.style.display="none"} +// Copyright 2018 The Distill Template Authors +function P(e,t){const n=e.querySelector("d-citation-list");if(n){H(n,new Map(t.citations.map(e=>[e,t.bibliography.get(e)])),e),n.setAttribute("distill-prerendered","true")}} +// Copyright 2018 The Distill Template Authors +function j(e){const t=e.head,n=t.querySelector("meta[http-equiv]");t.insertBefore(n,t.firstChild);const r=t.querySelector("meta[name=viewport]");t.insertBefore(r,t.firstChild);const i=t.querySelector("meta[charset]");t.insertBefore(i,t.firstChild)} +// Copyright 2018 The Distill Template Authors +function F(e){if(!e.querySelector("distill-header")){const t=e.createElement("distill-header");t.innerHTML=ye,t.setAttribute("distill-prerendered","");const n=e.querySelector("body");n.insertBefore(t,n.firstChild)}} +// Copyright 2018 The Distill Template Authors +function $(e){let t=xe;"undefined"!=typeof e.githubUrl&&(t+='\n

      Updates and Corrections

      \n

      ',e.githubCompareUpdatesUrl&&(t+=`View all changes to this article since it was first published.`),t+=`\n If you see mistakes or want to suggest changes, please create an issue on GitHub.

      \n `);const n=e.journal;return void 0!==n&&"Distill"===n.title&&(t+=`\n

      Reuse

      \n

      Diagrams and text are licensed under Creative Commons Attribution CC-BY 4.0 with the source available on GitHub, unless noted otherwise. The figures that have been reused from other sources don\u2019t fall under this license and can be recognized by a note in their caption: \u201cFigure from \u2026\u201d.

      \n `),"undefined"!=typeof e.publishedDate&&(t+=`\n

      Citation

      \n

      For attribution in academic contexts, please cite this work as

      \n
      ${e.concatenatedAuthors}, "${e.title}", Distill, ${e.publishedYear}.
      \n

      BibTeX citation

      \n
      ${c(e)}
      \n `),t} +// Copyright 2018 The Distill Template Authors +function U(e,t){const n=e.querySelector("d-appendix");if(n){if(!n.querySelector("distill-appendix")){const r=e.createElement("distill-appendix");n.appendChild(r),r.innerHTML=$(t)}}else console.warn("No appendix tag found!")} +// Copyright 2018 The Distill Template Authors +function Y(e){if(!e.querySelector("distill-footer")){const t=e.createElement("distill-footer");t.innerHTML=we,e.querySelector("body").appendChild(t)}} +// Copyright 2018 The Distill Template Authors +function V(e,t,n=!0){let r;r=t instanceof ne?t:ne.fromObject(t);for(const[t,i]of ke.entries())n&&console.warn("Running extractor: "+t),i(e,r,n);for(const[t,i]of Me.entries())n&&console.warn("Running transform: "+t),i(e,r,n);e.body.setAttribute("distill-prerendered",""),t instanceof ne||r.assignToObject(t)}function G(e,t,n=!0){for(const[r,i]of Se.entries())n&&console.warn("Running distillify: ",r),i(e,t,n)}function W(e){const t=e.querySelectorAll("script");let n=undefined;for(const e of t){const t=e.src;if(t.includes("template.v1.js"))n=!1;else if(t.includes("template.v2.js"))n=!0;else if(t.includes("template."))throw new Error("Uses distill template, but unknown version?!")}if(n===undefined)throw new Error("Does not seem to use Distill template at all.");return n}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t["default"]:t; +// Copyright 2018 The Distill Template Authors +const K=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],J=["Jan.","Feb.","March","April","May","June","July","Aug.","Sept.","Oct.","Nov.","Dec."],X=e=>e<10?"0"+e:e,Z=function(e){return`${K[e.getDay()].substring(0,3)}, ${X(e.getDate())} ${J[e.getMonth()].substring(0,3)} ${e.getFullYear().toString()} ${e.getUTCHours().toString()}:${e.getUTCMinutes().toString()}:${e.getUTCSeconds().toString()} Z`},Q=function(e){return Array.from(e).reduce((e,[t,n])=>Object.assign(e,{[t]:n}),{})},ee=function(e){const t=new Map;for(var n in e)e.hasOwnProperty(n)&&t.set(n,e[n]);return t};class te{constructor(e){this.name=e.author,this.personalURL=e.authorURL,this.affiliation=e.affiliation,this.affiliationURL=e.affiliationURL,this.affiliations=e.affiliations||[]}get firstName(){const e=this.name.split(" ");return e.slice(0,e.length-1).join(" ")}get lastName(){const e=this.name.split(" ");return e[e.length-1]}}class ne{constructor(){this.title="unnamed article",this.description="",this.authors=[],this.bibliography=new Map,this.bibliographyParsed=!1,this.citations=[],this.citationsCollected=!1,this.journal={},this.katex={},this.doi=undefined,this.publishedDate=undefined}set url(e){this._url=e}get url(){return this._url?this._url:this.distillPath&&this.journal.url?this.journal.url+"/"+this.distillPath:this.journal.url?this.journal.url:void 0}get githubUrl(){return this.githubPath?"https://github.com/"+this.githubPath:undefined}set previewURL(e){this._previewURL=e}get previewURL(){return this._previewURL?this._previewURL:this.url+"/thumbnail.jpg"}get publishedDateRFC(){return Z(this.publishedDate)}get updatedDateRFC(){return Z(this.updatedDate)}get publishedYear(){return this.publishedDate.getFullYear()}get publishedMonth(){return J[this.publishedDate.getMonth()]}get publishedDay(){return this.publishedDate.getDate()}get publishedMonthPadded(){return X(this.publishedDate.getMonth()+1)}get publishedDayPadded(){return X(this.publishedDate.getDate())}get publishedISODateOnly(){return this.publishedDate.toISOString().split("T")[0]}get volume(){const e=this.publishedYear-2015;if(e<1)throw new Error("Invalid publish date detected during computing volume");return e}get issue(){return this.publishedDate.getMonth()+1}get concatenatedAuthors(){return this.authors.length>2?this.authors[0].lastName+", et al.":2===this.authors.length?this.authors[0].lastName+" & "+this.authors[1].lastName:1===this.authors.length?this.authors[0].lastName:void 0}get bibtexAuthors(){return this.authors.map(e=>e.lastName+", "+e.firstName).join(" and ")}get slug(){let e="";return this.authors.length&&(e+=this.authors[0].lastName.toLowerCase(),e+=this.publishedYear,e+=this.title.split(" ")[0].toLowerCase()),e||"Untitled"}get bibliographyEntries(){return new Map(this.citations.map(e=>{return[e,this.bibliography.get(e)]}))}set bibliography(e){e instanceof Map?this._bibliography=e:"object"==typeof e&&(this._bibliography=ee(e))}get bibliography(){return this._bibliography}static fromObject(e){const t=new ne;return Object.assign(t,e),t}assignToObject(e){Object.assign(e,this),e.bibliography=Q(this.bibliographyEntries),e.url=this.url,e.doi=this.doi,e.githubUrl=this.githubUrl,e.previewURL=this.previewURL,this.publishedDate&&(e.volume=this.volume,e.issue=this.issue,e.publishedDateRFC=this.publishedDateRFC,e.publishedYear=this.publishedYear,e.publishedMonth=this.publishedMonth,e.publishedDay=this.publishedDay,e.publishedMonthPadded=this.publishedMonthPadded,e.publishedDayPadded=this.publishedDayPadded),this.updatedDate&&(e.updatedDateRFC=this.updatedDateRFC),e.concatenatedAuthors=this.concatenatedAuthors,e.bibtexAuthors=this.bibtexAuthors,e.slug=this.slug}}var re=l(function(e,t){!function(e){function t(){this.months=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],this.notKey=[",","{","}"," ","="],this.pos=0,this.input="",this.entries=new Array,this.currentEntry="",this.setInput=function(e){this.input=e},this.getEntries=function(){return this.entries},this.isWhitespace=function(e){return" "==e||"\r"==e||"\t"==e||"\n"==e},this.match=function(e,t){if(t!=undefined&&null!=t||(t=!0),this.skipWhitespace(t),this.input.substring(this.pos,this.pos+e.length)!=e)throw"Token mismatch, expected "+e+", found "+this.input.substring(this.pos);this.pos+=e.length,this.skipWhitespace(t)},this.tryMatch=function(e,t){return t!=undefined&&null!=t||(t=!0),this.skipWhitespace(t),this.input.substring(this.pos,this.pos+e.length)==e},this.matchAt=function(){for(;this.input.length>this.pos&&"@"!=this.input[this.pos];)this.pos++;return"@"==this.input[this.pos]},this.skipWhitespace=function(e){for(;this.isWhitespace(this.input[this.pos]);)this.pos++;if("%"==this.input[this.pos]&&1==e){for(;"\n"!=this.input[this.pos];)this.pos++;this.skipWhitespace(e)}},this.value_braces=function(){var e=0;this.match("{",!1);for(var t=this.pos,n=!1;;){if(!n)if("}"==this.input[this.pos]){if(!(e>0)){var r=this.pos;return this.match("}",!1),this.input.substring(t,r)}e--}else if("{"==this.input[this.pos])e++;else if(this.pos>=this.input.length-1)throw"Unterminated value";n="\\"==this.input[this.pos]&&0==n,this.pos++}},this.value_comment=function(){for(var e="",t=0;!this.tryMatch("}",!1)||0!=t;){if(e+=this.input[this.pos],"{"==this.input[this.pos]&&t++,"}"==this.input[this.pos]&&t--,this.pos>=this.input.length-1)throw"Unterminated value:"+this.input.substring(start);this.pos++}return e},this.value_quotes=function(){this.match('"',!1);for(var e=this.pos,t=!1;;){if(!t){if('"'==this.input[this.pos]){var n=this.pos;return this.match('"',!1),this.input.substring(e,n)}if(this.pos>=this.input.length-1)throw"Unterminated value:"+this.input.substring(e)}t="\\"==this.input[this.pos]&&0==t,this.pos++}},this.single_value=function(){var e=this.pos;if(this.tryMatch("{"))return this.value_braces();if(this.tryMatch('"'))return this.value_quotes();var t=this.key();if(t.match("^[0-9]+$"))return t;if(this.months.indexOf(t.toLowerCase())>=0)return t.toLowerCase();throw"Value expected:"+this.input.substring(e)+" for key: "+t},this.value=function(){var e=[];for(e.push(this.single_value());this.tryMatch("#");)this.match("#"),e.push(this.single_value());return e.join("")},this.key=function(){for(var e=this.pos;;){if(this.pos>=this.input.length)throw"Runaway key";if(this.notKey.indexOf(this.input[this.pos])>=0)return this.input.substring(e,this.pos);this.pos++}},this.key_equals_value=function(){var e=this.key();if(this.tryMatch("="))return this.match("="),[e,this.value()];throw"... = value expected, equals sign missing:"+this.input.substring(this.pos)},this.key_value_list=function(){var e=this.key_equals_value();for(this.currentEntry.entryTags={},this.currentEntry.entryTags[e[0]]=e[1];this.tryMatch(",")&&(this.match(","),!this.tryMatch("}"));)e=this.key_equals_value(),this.currentEntry.entryTags[e[0]]=e[1]},this.entry_body=function(e){this.currentEntry={},this.currentEntry.citationKey=this.key(),this.currentEntry.entryType=e.substring(1),this.match(","),this.key_value_list(),this.entries.push(this.currentEntry)},this.directive=function(){return this.match("@"),"@"+this.key()},this.preamble=function(){this.currentEntry={},this.currentEntry.entryType="PREAMBLE",this.currentEntry.entry=this.value_comment(),this.entries.push(this.currentEntry)},this.comment=function(){this.currentEntry={},this.currentEntry.entryType="COMMENT",this.currentEntry.entry=this.value_comment(),this.entries.push(this.currentEntry)},this.entry=function(e){this.entry_body(e)},this.bibtex=function(){for(;this.matchAt();){var e=this.directive();this.match("{"),"@STRING"==e?this.string():"@PREAMBLE"==e?this.preamble():"@COMMENT"==e?this.comment():this.entry(e),this.match("}")}}}e.toJSON=function(e){var n=new t;return n.setInput(e),n.bibtex(),n.entries},e.toBibtex=function(e){var t="";for(var n in e){if(t+="@"+e[n].entryType,t+="{",e[n].citationKey&&(t+=e[n].citationKey+", "),e[n].entry&&(t+=e[n].entry),e[n].entryTags){var r="";for(var i in e[n].entryTags)0!=r.length&&(r+=", "),r+=i+"= {"+e[n].entryTags[i]+"}";t+=r}t+="}\n\n"}return t}}(t)}),ie=s(l(function(e){var t;t=function(){return function e(t,n,r){function i(s,l){if(!n[s]){if(!t[s]){var u="function"==typeof o&&o;if(!l&&u)return u(s,!0);if(a)return a(s,!0);var d=new Error("Cannot find module '"+s+"'");throw d.code="MODULE_NOT_FOUND",d}var c=n[s]={exports:{}};t[s][0].call(c.exports,function(e){var n=t[s][1][e];return i(n||e)},c,c.exports,e,t,n,r)}return n[s].exports}for(var a="function"==typeof o&&o,s=0;s=0;--d)if("#"===(n=r[d]).text){if(0===d)throw new s["default"]("Incomplete placeholder at end of macro body",n);if("#"===(n=r[--d]).text)r.splice(d+1,1);else{if(!/^[1-9]$/.test(n.text))throw new s["default"]("Not a valid argument number",n);r.splice.apply(r,[d,2].concat(u[n.text-1]))}}}this.stack=this.stack.concat(r)}}},{key:"get",value:function(e){this.discardedWhiteSpace=[];var t=this.nextToken();if(e)for(;" "===t.text;)this.discardedWhiteSpace.push(t),t=this.nextToken();return t}},{key:"unget",value:function(e){for(this.stack.push(e);0!==this.discardedWhiteSpace.length;)this.stack.push(this.discardedWhiteSpace.pop())}}]),e}();t.exports=u},{"./Lexer":26,"./ParseError":29,"./macros":44,"babel-runtime/helpers/classCallCheck":4,"babel-runtime/helpers/createClass":5,"object-assign":25}],28:[function(e,t){function n(e){return e&&e.__esModule?e:{"default":e}}var r=n(e("babel-runtime/helpers/classCallCheck")),i=n(e("babel-runtime/helpers/createClass")),a=n(e("./fontMetrics")),o=6,s=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],l=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],u=function(e,t){return t.size<2?e:s[e-1][t.size-1]},d=function(){function e(t){(0,r["default"])(this,e),this.style=t.style,this.color=t.color,this.size=t.size||o,this.textSize=t.textSize||this.size,this.phantom=t.phantom,this.font=t.font,this.sizeMultiplier=l[this.size-1],this._fontMetrics=null}return(0,i["default"])(e,[{key:"extend",value:function(t){var n={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font};for(var r in t)t.hasOwnProperty(r)&&(n[r]=t[r]);return new e(n)}},{key:"havingStyle",value:function(e){return this.style===e?this:this.extend({style:e,size:u(this.textSize,e)})}},{key:"havingCrampedStyle",value:function(){return this.havingStyle(this.style.cramp())}},{key:"havingSize",value:function(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e})}},{key:"havingBaseStyle",value:function(e){e=e||this.style.text();var t=u(o,e);return this.size===t&&this.textSize===o&&this.style===e?this:this.extend({style:e,size:t,baseSize:o})}},{key:"withColor",value:function(e){return this.extend({color:e})}},{key:"withPhantom",value:function(){return this.extend({phantom:!0})}},{key:"withFont",value:function(e){return this.extend({font:e||this.font})}},{key:"sizingClasses",value:function(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}},{key:"baseSizingClasses",value:function(){return this.size!==o?["sizing","reset-size"+this.size,"size"+o]:[]}},{key:"fontMetrics",value:function(){return this._fontMetrics||(this._fontMetrics=a["default"].getFontMetrics(this.size)),this._fontMetrics}},{key:"getColor",value:function(){return this.phantom?"transparent":e.colorMap[this.color]||this.color}}]),e}();d.colorMap={"katex-blue":"#6495ed","katex-orange":"#ffa500","katex-pink":"#ff00af","katex-red":"#df0030","katex-green":"#28ae7b","katex-gray":"gray","katex-purple":"#9d38bd","katex-blueA":"#ccfaff","katex-blueB":"#80f6ff","katex-blueC":"#63d9ea","katex-blueD":"#11accd","katex-blueE":"#0c7f99","katex-tealA":"#94fff5","katex-tealB":"#26edd5","katex-tealC":"#01d1c1","katex-tealD":"#01a995","katex-tealE":"#208170","katex-greenA":"#b6ffb0","katex-greenB":"#8af281","katex-greenC":"#74cf70","katex-greenD":"#1fab54","katex-greenE":"#0d923f","katex-goldA":"#ffd0a9","katex-goldB":"#ffbb71","katex-goldC":"#ff9c39","katex-goldD":"#e07d10","katex-goldE":"#a75a05","katex-redA":"#fca9a9","katex-redB":"#ff8482","katex-redC":"#f9685d","katex-redD":"#e84d39","katex-redE":"#bc2612","katex-maroonA":"#ffbde0","katex-maroonB":"#ff92c6","katex-maroonC":"#ed5fa6","katex-maroonD":"#ca337c","katex-maroonE":"#9e034e","katex-purpleA":"#ddd7ff","katex-purpleB":"#c6b9fc","katex-purpleC":"#aa87ff","katex-purpleD":"#7854ab","katex-purpleE":"#543b78","katex-mintA":"#f5f9e8","katex-mintB":"#edf2df","katex-mintC":"#e0e5cc","katex-grayA":"#f6f7f7","katex-grayB":"#f0f1f2","katex-grayC":"#e3e5e6","katex-grayD":"#d6d8da","katex-grayE":"#babec2","katex-grayF":"#888d93","katex-grayG":"#626569","katex-grayH":"#3b3e40","katex-grayI":"#21242c","katex-kaBlue":"#314453","katex-kaGreen":"#71B307"},d.BASESIZE=o,t.exports=d},{"./fontMetrics":41,"babel-runtime/helpers/classCallCheck":4,"babel-runtime/helpers/createClass":5}],29:[function(e,t){function n(e){return e&&e.__esModule?e:{"default":e}}var r=n(e("babel-runtime/helpers/classCallCheck")),i=function a(e,t){(0,r["default"])(this,a);var n="KaTeX parse error: "+e,i=void 0,o=void 0;if(t&&t.lexer&&t.start<=t.end){var s=t.lexer.input;i=t.start,o=t.end,i===s.length?n+=" at end of input: ":n+=" at position "+(i+1)+": ";var l=s.slice(i,o).replace(/[^]/g,"$&\u0332");n+=(i>15?"\u2026"+s.slice(i-15,i):s.slice(0,i))+l+(o+15e.SUPSUB_GREEDINESS)return this.parseFunction(i);throw new f["default"]("Got function '"+i.result+"' with no arguments as "+t,n)}return i.result}if(this.settings.throwOnError||"\\"!==this.nextToken.text[0])throw new f["default"]("Expected group after '"+r+"'",n);return this.handleUnsupportedCmd()}},{key:"handleUnsupportedCmd",value:function(){for(var e=this.nextToken.text,t=[],n=0;ni))throw new f["default"]("Got function '"+c.result+"' as argument to '"+e+"'",u);h=this.parseFunction(c)}else h=c.result;s.push(h),a.push(this.pos)}return s.push(a),s}},{key:"parseGroupOfType",value:function(e,t){var n=this.mode;if("original"===e&&(e=n),"color"===e)return this.parseColorGroup(t);if("size"===e)return this.parseSizeGroup(t);this.switchMode(e),"text"===e&&this.consumeSpaces();var r=this.parseGroup(t);return this.switchMode(n),r}},{key:"consumeSpaces",value:function(){for(;" "===this.nextToken.text;)this.consume()}},{key:"parseStringGroup",value:function(e,t){if(t&&"["!==this.nextToken.text)return null;var n=this.mode;this.mode="text",this.expect(t?"[":"{");for(var r="",i=this.nextToken,a=i;this.nextToken.text!==(t?"]":"}");){if("EOF"===this.nextToken.text)throw new f["default"]("Unexpected end of input in "+e,i.range(this.nextToken,r));r+=(a=this.nextToken).text,this.consume()}return this.mode=n,this.expect(t?"]":"}"),i.range(a,r)}},{key:"parseRegexGroup",value:function(e,t){var n=this.mode;this.mode="text";for(var r=this.nextToken,i=r,a="";"EOF"!==this.nextToken.text&&e.test(a+this.nextToken.text);)a+=(i=this.nextToken).text,this.consume();if(""===a)throw new f["default"]("Invalid "+t+": '"+r.text+"'",r);return this.mode=n,r.range(i,a)}},{key:"parseColorGroup",value:function(e){var t=this.parseStringGroup("color",e);if(!t)return null;var n=/^(#[a-z0-9]+|[a-z]+)$/i.exec(t.text);if(!n)throw new f["default"]("Invalid color: '"+t.text+"'",t) +;return new r(new p["default"]("color",n[0],this.mode),!1)}},{key:"parseSizeGroup",value:function(e){var t=void 0;if(!(t=e||"{"===this.nextToken.text?this.parseStringGroup("size",e):this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/,"size")))return null;var n=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(t.text);if(!n)throw new f["default"]("Invalid size: '"+t.text+"'",t);var i={number:+(n[1]+n[2]),unit:n[3]};if(!c["default"].validUnit(i))throw new f["default"]("Invalid unit: '"+i.unit+"'",t);return new r(new p["default"]("size",i,this.mode),!1)}},{key:"parseGroup",value:function(e){var t=this.nextToken;if(this.nextToken.text===(e?"[":"{")){this.consume();var n=this.parseExpression(!1,e?"]":null),i=this.nextToken;return this.expect(e?"]":"}"),"text"===this.mode&&this.formLigatures(n),new r(new p["default"]("ordgroup",n,this.mode,t,i),!1)}return e?null:this.parseSymbol()}},{key:"formLigatures",value:function(e){for(var t=e.length-1,n=0;n=2}}]),e}(),o=0,s=1,l=2,u=3,d=4,c=5,h=6,p=7,f=[new a(o,0,!1),new a(s,0,!0),new a(l,1,!1),new a(u,1,!0),new a(d,2,!1),new a(c,2,!0),new a(h,3,!1),new a(p,3,!0)],m=[d,c,d,c,h,p,h,p],g=[c,c,c,c,p,p,p,p],v=[l,u,d,c,h,p,h,p],b=[u,u,c,c,p,p,p,p],y=[s,s,u,u,c,c,p,p],x=[o,s,l,u,l,u,l,u];t.exports={DISPLAY:f[o],TEXT:f[l],SCRIPT:f[d],SCRIPTSCRIPT:f[h]}},{"babel-runtime/helpers/classCallCheck":4,"babel-runtime/helpers/createClass":5}],34:[function(e,t){function n(e){return e&&e.__esModule?e:{"default":e}}var r=n(e("./domTree")),i=n(e("./fontMetrics")),a=n(e("./symbols")),o=n(e("./utils")),s=["\\imath","\\jmath","\\pounds"],l=function(e,t,n){return a["default"][n][e]&&a["default"][n][e].replace&&(e=a["default"][n][e].replace),{value:e,metrics:i["default"].getCharacterMetrics(e,t)}},u=function(e,t,n,i,a){var o=l(e,t,n),s=o.metrics;e=o.value;var u=void 0;if(s){var d=s.italic;"text"===n&&(d=0),u=new r["default"].symbolNode(e,s.height,s.depth,d,s.skew,a)}else"undefined"!=typeof console&&console.warn("No character metrics for '"+e+"' in style '"+t+"'"),u=new r["default"].symbolNode(e,0,0,0,0,a);return i&&(u.maxFontSize=i.sizeMultiplier,i.style.isTight()&&u.classes.push("mtight"),i.getColor()&&(u.style.color=i.getColor())),u},d=function(e,t,n,r){return"\\"===e||"main"===a["default"][t][e].font?u(e,"Main-Regular",t,n,r):u(e,"AMS-Regular",t,n,r.concat(["amsrm"]))},c=function(e,t,n,r,i){if("mathord"===i){var o=h(e);return u(e,o.fontName,t,n,r.concat([o.fontClass]))}if("textord"===i)return"ams"===(a["default"][t][e]&&a["default"][t][e].font)?u(e,"AMS-Regular",t,n,r.concat(["amsrm"])):u(e,"Main-Regular",t,n,r.concat(["mathrm"]));throw new Error("unexpected type: "+i+" in mathDefault")},h=function(e){return/[0-9]/.test(e.charAt(0))||o["default"].contains(s,e)?{fontName:"Main-Italic",fontClass:"mainit"}:{fontName:"Math-Italic",fontClass:"mathit"}},p=function(e,t,n){var r=e.mode,i=e.value,a=["mord"],d=t.font;if(d){var p=void 0;return p="mathit"===d||o["default"].contains(s,i)?h(i):x[d],l(i,p.fontName,r).metrics?u(i,p.fontName,r,t,a.concat([p.fontClass||d])):c(i,r,t,a,n)}return c(i,r,t,a,n)},f=function(e){var t=0,n=0,r=0;if(e.children)for(var i=0;it&&(t=e.children[i].height),e.children[i].depth>n&&(n=e.children[i].depth),e.children[i].maxFontSize>r&&(r=e.children[i].maxFontSize);e.height=t,e.depth=n,e.maxFontSize=r},m=function(e,t,n){var i=new r["default"].span(e,t,n);return f(i),i},g=function(e,t){e.children=t.concat(e.children),f(e)},v=function(e){var t=new r["default"].documentFragment(e);return f(t),t},b=function(e,t,n){var i=void 0,a=void 0,o=void 0;if("individualShift"===t){var s=e;for(e=[s[0]],a=i=-s[0].shift-s[0].elem.depth,o=1;o0&&(c+=b,h-=b)}var y=[{type:"elem",elem:i,shift:h,marginRight:m},{type:"elem",elem:r,shift:-c,marginRight:m}];n instanceof d["default"].symbolNode&&(y[0].marginLeft=-n.italic+"em"),g=l["default"].makeVList(y,"individualShift",null,t)}else c=Math.max(c,p,r.depth+.25*a.xHeight),g=l["default"].makeVList([{type:"elem",elem:r,marginRight:m}],"shift",-c,t);else{h=Math.max(h,a.sub1,i.height-.8*a.xHeight);var k=[{type:"elem",elem:i,marginRight:m}];n instanceof d["default"].symbolNode&&(k[0].marginLeft=-n.italic+"em"),g=l["default"].makeVList(k,"shift",h,t)}var S=x(n)||"mord";return(0,s.makeSpan)([S],[n,(0,s.makeSpan)(["msupsub"],[g])],t)},genfrac:function(e,t){var n=t.style;"display"===e.value.size?n=o["default"].DISPLAY:"text"===e.value.size&&(n=o["default"].TEXT);var r=n.fracNum(),i=n.fracDen(),a=void 0;a=t.havingStyle(r);var d=C(e.value.numer,a,t);a=t.havingStyle(i);var c=C(e.value.denom,a,t),h=void 0,p=void 0,f=void 0;e.value.hasBarLine?(p=(h=A("frac-line",t)).height,f=h.height):(h=null,p=0,f=t.fontMetrics().defaultRuleThickness);var m=void 0,g=void 0,v=void 0;n.size===o["default"].DISPLAY.size?(m=t.fontMetrics().num1,g=p>0?3*f:7*f,v=t.fontMetrics().denom1):(p>0?(m=t.fontMetrics().num2,g=f):(m=t.fontMetrics().num3,g=3*f),v=t.fontMetrics().denom2);var b=void 0;if(0===p){var y=m-d.depth-(c.height-v);y0&&(k<(z+=b)&&(k=z),z=0),e.value.addJot&&(k+=m),M.height=w,M.depth=k,y+=w,M.pos=y,y+=k+z,u[n]=M}var A=y/2+t.fontMetrics().axisHeight,T=e.value.cols||[],N=[],E=void 0,R=void 0;for(r=0,R=0;r=o)){var _=void 0;(r>0||e.value.hskipBeforeAndAfter)&&0!==(_=h["default"].deflt(L.pregap,p))&&((E=(0,s.makeSpan)(["arraycolsep"],[])).style.width=_+"em",N.push(E));var D=[];for(n=0;nn.height+n.depth+a&&(a=(a+f-n.height-n.depth)/2);var m=h.height-n.height-a-p,g=void 0;if(0===n.height&&0===n.depth?g=(0,s.makeSpan)():(n.style.paddingLeft=h.surdWidth+"em",(g=l["default"].makeVList([{type:"elem",elem:n},{type:"kern",size:-(n.height+m)},{type:"elem",elem:h},{type:"kern",size:p}],"firstBaseline",null,t)).children[0].children[0].classes.push("svg-align")),e.value.index){var v=t.havingStyle(o["default"].SCRIPTSCRIPT),b=C(e.value.index,v,t),y=.6*(g.height-g.depth),x=l["default"].makeVList([{type:"elem",elem:b}],"shift",-y,t),w=(0,s.makeSpan)(["root"],[x]);return(0,s.makeSpan)(["mord","sqrt"],[w,g],t)}return(0,s.makeSpan)(["mord","sqrt"],[g],t)},z.sizing=function(e,t){var n=t.havingSize(e.value.size);return r(e.value.value,n,t)},z.styling=function(e,t){var n={display:o["default"].DISPLAY,text:o["default"].TEXT,script:o["default"].SCRIPT,scriptscript:o["default"].SCRIPTSCRIPT}[e.value.style],i=t.havingStyle(n);return r(e.value.value,i,t)},z.font=function(e,t){var n=e.value.font;return C(e.value.body,t.withFont(n))},z.delimsizing=function(e,t){var n=e.value.value;return"."===n?(0,s.makeSpan)([e.value.mclass]):u["default"].sizedDelim(n,e.value.size,t,e.mode,[e.value.mclass])},z.leftright=function(e,t){for(var n=y(e.value.body,t,!0),r=0,i=0,a=!1,o=0;o0&&(h.style.width="calc(100% - "+2*o+"em)",h.style.marginLeft=2*o+"em")}else{var f=l["default"].makeSymbol(e.value.label,"Main-Regular",e.mode,t);f.italic=0;var m=null;"\\vec"===e.value.label?m="accent-vec":"\\H"===e.value.label&&(m="accent-hungarian"),c=(0,s.makeSpan)([],[f]),(c=(0,s.makeSpan)(["accent-body",m],[c])).style.marginLeft=2*o+"em",c=l["default"].makeVList([{type:"elem",elem:a},{type:"kern",size:-d},{type:"elem",elem:c}],"firstBaseline",null,t)}var g=(0,s.makeSpan)(["mord","accent"],[c],t);return r?(r.children[0]=g,r.height=Math.max(g.height,r.height),r.classes[0]="mord",r):g},z.horizBrace=function(e,t){var n=t.style,r="supsub"===e.type,i=void 0,a=void 0;r&&(e.value.sup?(a=t.havingStyle(n.sup()),i=C(e.value.sup,a,t)):(a=t.havingStyle(n.sub()),i=C(e.value.sub,a,t)),e=e.value.base);var u=C(e.value.base,t.havingBaseStyle(o["default"].DISPLAY)),d=p["default"].svgSpan(e,t),c=void 0;if(e.value.isOver?(c=l["default"].makeVList([{type:"elem",elem:u},{type:"kern",size:.1},{type:"elem",elem:d}],"firstBaseline",null,t)).children[0].children[0].children[1].classes.push("svg-align"):(c=l["default"].makeVList([{type:"elem",elem:d},{type:"kern",size:.1},{type:"elem",elem:u}],"bottom",u.depth+.1+d.height,t)).children[0].children[0].children[0].classes.push("svg-align"),r){var h=(0,s.makeSpan)(["mord",e.value.isOver?"mover":"munder"],[c],t);c=e.value.isOver?l["default"].makeVList([{type:"elem",elem:h},{type:"kern",size:.2},{type:"elem",elem:i}],"firstBaseline",null,t):l["default"].makeVList([{type:"elem",elem:i},{type:"kern",size:.2},{type:"elem",elem:h}],"bottom",h.depth+.2+i.height,t)}return(0,s.makeSpan)(["mord",e.value.isOver?"mover":"munder"],[c],t)},z.accentUnder=function(e,t){var n=C(e.value.body,t),r=p["default"].svgSpan(e,t),i=/tilde/.test(e.value.label)?.12:0,a=l["default"].makeVList([{type:"elem",elem:r},{type:"kern",size:i},{type:"elem",elem:n}],"bottom",r.height+i,t);return a.children[0].children[0].children[0].classes.push("svg-align"),(0,s.makeSpan)(["mord","accentunder"],[a],t)},z.enclose=function(e,t){var n=C(e.value.body,t),r=e.value.label.substr(1),i=t.sizeMultiplier,a=void 0,o=0,u=0;if("sout"===r)(a=(0,s.makeSpan)(["stretchy","sout"])).height=t.fontMetrics().defaultRuleThickness/i,u=-.5*t.fontMetrics().xHeight;else{n.classes.push("fbox"===r?"boxpad":"cancel-pad");var d=M(e.value.body);o="fbox"===r?.34:d?.2:0,u=n.depth+o,a=p["default"].encloseSpan(n,r,o,t)}var c=l["default"].makeVList([{type:"elem",elem:n,shift:0},{type:"elem",elem:a,shift:u}],"individualShift",null,t);return"fbox"!==r&&c.children[0].children[0].children[1].classes.push("svg-align"),/cancel/.test(r)?(0,s.makeSpan)(["mord","cancel-lap"],[c],t):(0,s.makeSpan)(["mord"],[c],t)},z.xArrow=function(e,t){var n=t.style,r=t.havingStyle(n.sup()),i=C(e.value.body,r,t);i.classes.push("x-arrow-pad");var a=void 0;e.value.below&&(r=t.havingStyle(n.sub()),(a=C(e.value.below,r,t)).classes.push("x-arrow-pad"));var o=p["default"].svgSpan(e,t),u=-t.fontMetrics().axisHeight+o.depth,d=-t.fontMetrics().axisHeight-o.height-.111,c=void 0;if(e.value.below){var h=-t.fontMetrics().axisHeight+a.height+o.height+.111;c=l["default"].makeVList([{type:"elem",elem:i,shift:d},{type:"elem",elem:o,shift:u},{type:"elem",elem:a,shift:h}],"individualShift",null,t)}else c=l["default"].makeVList([{type:"elem",elem:i,shift:d},{type:"elem",elem:o,shift:u}],"individualShift",null,t);return c.children[0].children[0].children[1].classes.push("svg-align"),(0,s.makeSpan)(["mrel","x-arrow"],[c],t)},z.phantom=function(e,t){var n=y(e.value.value,t.withPhantom(),!1);return new l["default"].makeFragment(n)},z.mclass=function(e,t){var n=y(e.value.value,t,!0);return(0,s.makeSpan)([e.value.mclass],n,t)};var C=function(e,t,n){if(!e)return(0,s.makeSpan)();if(z[e.type]){var r=z[e.type](e,t);if(n&&t.size!==n.size){r=(0,s.makeSpan)(t.sizingClasses(n),[r],t);var i=t.sizeMultiplier/n.sizeMultiplier;r.height*=i,r.depth*=i}return r}throw new a["default"]("Got group of unknown type: '"+e.type+"'")},T=function(e,t){e=JSON.parse((0,i["default"])(e));var n=y(e,t,!0),r=(0,s.makeSpan)(["base"],n,t),a=(0,s.makeSpan)(["strut"]),o=(0,s.makeSpan)(["strut","bottom"]);a.style.height=r.height+"em",o.style.height=r.height+r.depth+"em",o.style.verticalAlign=-r.depth+"em";var l=(0,s.makeSpan)(["katex-html"],[a,o,r]);return l.setAttribute("aria-hidden","true"),l};t.exports=T},{"./ParseError":29,"./Style":33,"./buildCommon":34,"./delimiter":38,"./domTree":39,"./stretchy":47,"./units":50,"./utils":51,"babel-runtime/core-js/json/stringify":2}],36:[function(e,t){function n(e){return e&&e.__esModule?e:{"default":e}}var r=e("./buildCommon"),i=n(r),a=n(e("./fontMetrics")),o=n(e("./mathMLTree")),s=n(e("./ParseError")),l=n(e("./Style")),u=n(e("./symbols")),d=n(e("./utils")),c=n(e("./stretchy")),h=function(e,t){return u["default"][t][e]&&u["default"][t][e].replace&&(e=u["default"][t][e].replace),new o["default"].TextNode(e)},p=function(e,t){var n=t.font;if(!n)return null;var i=e.mode;if("mathit"===n)return"italic";var o=e.value;if(d["default"].contains(["\\imath","\\jmath"],o))return null;u["default"][i][o]&&u["default"][i][o].replace&&(o=u["default"][i][o].replace);var s=r.fontMap[n].fontName;return a["default"].getCharacterMetrics(o,s)?r.fontMap[t.font].variant:null},f={},m={mi:"italic",mn:"normal",mtext:"normal"};f.mathord=function(e,t){var n=new o["default"].MathNode("mi",[h(e.value,e.mode)]),r=p(e,t)||"italic";return r!==m[n.type]&&n.setAttribute("mathvariant",r),n},f.textord=function(e,t){var n=h(e.value,e.mode),r=p(e,t)||"normal",i=void 0;return i="text"===e.mode?new o["default"].MathNode("mtext",[n]):/[0-9]/.test(e.value)?new o["default"].MathNode("mn",[n]):"\\prime"===e.value?new o["default"].MathNode("mo",[n]):new o["default"].MathNode("mi",[n]),r!==m[i.type]&&i.setAttribute("mathvariant",r),i},f.bin=function(e){return new o["default"].MathNode("mo",[h(e.value,e.mode)])},f.rel=function(e){return new o["default"].MathNode("mo",[h(e.value,e.mode)])},f.open=function(e){return new o["default"].MathNode("mo",[h(e.value,e.mode)])},f.close=function(e){return new o["default"].MathNode("mo",[h(e.value,e.mode)])},f.inner=function(e){return new o["default"].MathNode("mo",[h(e.value,e.mode)])},f.punct=function(e){var t=new o["default"].MathNode("mo",[h(e.value,e.mode)]);return t.setAttribute("separator","true"),t},f.ordgroup=function(e,t){var n=g(e.value,t);return new o["default"].MathNode("mrow",n)},f.text=function(e,t){for(var n=e.value.body,r=[],i=null,a=0;a2&&arguments[2]!==undefined&&arguments[2];if(!e)return new o["default"].MathNode("mrow");if(f[e.type]){var r=f[e.type](e,t);return n&&"mrow"===r.type&&1===r.children.length?r.children[0]:r}throw new s["default"]("Got group of unknown type: '"+e.type+"'")},b=function(e,t,n){var i=g(e,n),a=new o["default"].MathNode("mrow",i),s=new o["default"].MathNode("annotation",[new o["default"].TextNode(t)]);s.setAttribute("encoding","application/x-tex");var l=new o["default"].MathNode("semantics",[a,s]),u=new o["default"].MathNode("math",[l]);return(0,r.makeSpan)(["katex-mathml"],[u])};t.exports=b},{"./ParseError":29,"./Style":33,"./buildCommon":34,"./fontMetrics":41,"./mathMLTree":45,"./stretchy":47,"./symbols":48,"./utils":51}],37:[function(e,t){function n(e){return e&&e.__esModule?e:{"default":e}}var r=n(e("./buildHTML")),i=n(e("./buildMathML")),a=e("./buildCommon"),o=n(e("./Options")),s=n(e("./Settings")),l=n(e("./Style")),u=function(e,t,n){n=n||new s["default"]({});var u=l["default"].TEXT;n.displayMode&&(u=l["default"].DISPLAY);var d=new o["default"]({style:u}),c=(0,i["default"])(e,t,d),h=(0,r["default"])(e,d),p=(0,a.makeSpan)(["katex"],[c,h]);return n.displayMode?(0,a.makeSpan)(["katex-display"],[p]):p};t.exports=u},{"./Options":28,"./Settings":32,"./Style":33,"./buildCommon":34,"./buildHTML":35,"./buildMathML":36}],38:[function(e,t){function n(e){return e&&e.__esModule?e:{"default":e}}var r=n(e("./ParseError")),i=n(e("./Style")),a=e("./buildCommon"),o=n(a),s=n(e("./fontMetrics")),l=n(e("./symbols")),u=n(e("./utils")),d=function(e,t){return l["default"].math[e]&&l["default"].math[e].replace?s["default"].getCharacterMetrics(l["default"].math[e].replace,t):s["default"].getCharacterMetrics(e,t)},c=function(e,t,n,r){var i=n.havingBaseStyle(t),o=(0,a.makeSpan)((r||[]).concat(i.sizingClasses(n)),[e],n);return o.delimSizeMultiplier=i.sizeMultiplier/n.sizeMultiplier,o.height*=o.delimSizeMultiplier,o.depth*=o.delimSizeMultiplier,o.maxFontSize=i.sizeMultiplier,o},h=function(e,t,n){var r=t.havingBaseStyle(n),i=(1-t.sizeMultiplier/r.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=i+"em",e.height-=i,e.depth+=i},p=function(e,t,n,r,i,a){var s=o["default"].makeSymbol(e,"Main-Regular",i,r),l=c(s,t,r,a);return n&&h(l,r,t),l},f=function(e,t,n,r){return o["default"].makeSymbol(e,"Size"+t+"-Regular",n,r)},m=function(e,t,n,r,o,s){var l=f(e,t,o,r),u=c((0,a.makeSpan)(["delimsizing","size"+t],[l],r),i["default"].TEXT,r,s);return n&&h(u,r,i["default"].TEXT),u},g=function(e,t,n){var r=void 0;return"Size1-Regular"===t?r="delim-size1":"Size4-Regular"===t&&(r="delim-size4"),{type:"elem",elem:(0,a.makeSpan)(["delimsizinginner",r],[(0,a.makeSpan)([],[o["default"].makeSymbol(e,t,n)])])}},v=function(e,t,n,r,s,l){var u=void 0,h=void 0,p=void 0,f=void 0;u=p=f=e,h=null;var m="Size1-Regular";"\\uparrow"===e?p=f="\u23d0":"\\Uparrow"===e?p=f="\u2016":"\\downarrow"===e?u=p="\u23d0":"\\Downarrow"===e?u=p="\u2016":"\\updownarrow"===e?(u="\\uparrow",p="\u23d0",f="\\downarrow"):"\\Updownarrow"===e?(u="\\Uparrow",p="\u2016",f="\\Downarrow"):"["===e||"\\lbrack"===e?(u="\u23a1",p="\u23a2",f="\u23a3",m="Size4-Regular"):"]"===e||"\\rbrack"===e?(u="\u23a4",p="\u23a5",f="\u23a6",m="Size4-Regular"):"\\lfloor"===e?(p=u="\u23a2",f="\u23a3",m="Size4-Regular"):"\\lceil"===e?(u="\u23a1",p=f="\u23a2",m="Size4-Regular"):"\\rfloor"===e?(p=u="\u23a5",f="\u23a6",m="Size4-Regular"):"\\rceil"===e?(u="\u23a4",p=f="\u23a5",m="Size4-Regular"):"("===e?(u="\u239b",p="\u239c",f="\u239d",m="Size4-Regular"):")"===e?(u="\u239e",p="\u239f",f="\u23a0",m="Size4-Regular"):"\\{"===e||"\\lbrace"===e?(u="\u23a7",h="\u23a8",f="\u23a9",p="\u23aa",m="Size4-Regular"):"\\}"===e||"\\rbrace"===e?(u="\u23ab",h="\u23ac",f="\u23ad",p="\u23aa",m="Size4-Regular"):"\\lgroup"===e?(u="\u23a7",f="\u23a9",p="\u23aa",m="Size4-Regular"):"\\rgroup"===e?(u="\u23ab",f="\u23ad",p="\u23aa",m="Size4-Regular"):"\\lmoustache"===e?(u="\u23a7",f="\u23ad",p="\u23aa",m="Size4-Regular"):"\\rmoustache"===e&&(u="\u23ab",f="\u23a9",p="\u23aa",m="Size4-Regular");var v=d(u,m),b=v.height+v.depth,y=d(p,m),x=y.height+y.depth,w=d(f,m),k=w.height+w.depth,M=0,S=1;if(null!==h){var z=d(h,m);M=z.height+z.depth,S=2}var A=b+k+M,C=Math.ceil((t-A)/(S*x)),T=A+C*S*x,N=r.fontMetrics().axisHeight;n&&(N*=r.sizeMultiplier);var E=T/2-N,R=[];if(R.push(g(f,m,s)),null===h)for(var L=0;L",1:"",2:"",3:"",4:"",tall:"l-4 4-4 4c-.667.667-2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1h\n-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170c-4-3.333-8.333\n-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 219 661 l218 661z\nM702 0H400000v40H742z'/>"},y=function(e,t,n){var r=o["default"].makeSpan([],[],n),i=n.sizeMultiplier;if("small"===t.type)i=n.havingBaseStyle(t.style).sizeMultiplier/n.sizeMultiplier,r.height=1*i,r.style.height=r.height+"em",r.surdWidth=.833*i,r.innerHTML="\n "+b.main+"";else if("large"===t.type)r.height=M[t.size]/i,r.style.height=r.height+"em",r.surdWidth=1/i,r.innerHTML='\n '+b[t.size]+"";else{r.height=e/i,r.style.height=r.height+"em",r.surdWidth=1.056/i;var a=Math.floor(1e3*r.height),s=a-54;r.innerHTML="\n \n t)return n[i]}return n[n.length-1]},E=function(e,t,n,r,i,a){"<"===e||"\\lt"===e?e="\\langle":">"!==e&&"\\gt"!==e||(e="\\rangle");var o=void 0;o=u["default"].contains(k,e)?z:u["default"].contains(x,e)?C:A;var s=N(e,t,o,r);return"\\surd"===e?y(t,s,r):"small"===s.type?p(e,s.style,n,r,i,a):"large"===s.type?m(e,s.size,n,r,i,a):"stack"===s.type?v(e,t,n,r,i,a):void 0},R=function(e,t,n,r,i,a){var o=r.fontMetrics().axisHeight*r.sizeMultiplier,s=901,l=5/r.fontMetrics().ptPerEm,u=Math.max(t-o,n+o),d=Math.max(u/500*s,2*u-l);return E(e,d,!0,r,i,a)};t.exports={sizedDelim:S,customSizedDelim:E,leftRightDelim:R}},{"./ParseError":29,"./Style":33,"./buildCommon":34,"./fontMetrics":41,"./symbols":48,"./utils":51}],39:[function(e,t){function n(e){return e&&e.__esModule?e:{"default":e}}var r=n(e("babel-runtime/helpers/classCallCheck")),i=n(e("babel-runtime/helpers/createClass")),a=n(e("./unicodeRegexes")),o=n(e("./utils")),s=function(e){for(var t=(e=e.slice()).length-1;t>=0;t--)e[t]||e.splice(t,1);return e.join(" ")},l=function(){function e(t,n,i){(0,r["default"])(this,e),this.classes=t||[],this.children=n||[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={},this.attributes={},this.innerHTML,i&&(i.style.isTight()&&this.classes.push("mtight"),i.getColor()&&(this.style.color=i.getColor()))}return(0,i["default"])(e,[{key:"setAttribute",value:function(e,t){this.attributes[e]=t}},{key:"tryCombine",value:function(){return!1}},{key:"toNode",value:function(){var e=document.createElement("span");for(var t in e.className=s(this.classes),this.style)Object.prototype.hasOwnProperty.call(this.style,t)&&(e.style[t]=this.style[t]);for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&e.setAttribute(n,this.attributes[n]);this.innerHTML&&(e.innerHTML=this.innerHTML);for(var r=0;r0||s(this.classes)!==s(t.classes)||this.skew!==t.skew||this.maxFontSize!==t.maxFontSize)return!1;for(var n in this.style)if(this.style.hasOwnProperty(n)&&this.style[n]!==t.style[n])return!1;for(var r in t.style)if(t.style.hasOwnProperty(r)&&this.style[r]!==t.style[r])return!1;return this.value+=t.value,this.height=Math.max(this.height,t.height),this.depth=Math.max(this.depth,t.depth),this.italic=t.italic,!0}},{key:"toNode",value:function(){var e=document.createTextNode(this.value),t=null;for(var n in this.italic>0&&((t=document.createElement("span")).style.marginRight=this.italic+"em"),this.classes.length>0&&((t=t||document.createElement("span")).className=s(this.classes)),this.style)this.style.hasOwnProperty(n)&&((t=t||document.createElement("span")).style[n]=this.style[n]);return t?(t.appendChild(e),t):e}},{key:"toMarkup",value:function(){var e=!1,t="0&&(n+="margin-right:"+this.italic+"em;"),this.style)this.style.hasOwnProperty(r)&&(n+=o["default"].hyphenate(r)+":"+this.style[r]+";");n&&(e=!0,t+=' style="'+o["default"].escape(n)+'"');var i=o["default"].escape(this.value);return e?(t+=">",t+=i,t+=""):i}}]),e}();t.exports={span:l,documentFragment:u,symbolNode:c}},{"./unicodeRegexes":49,"./utils":51,"babel-runtime/helpers/classCallCheck":4,"babel-runtime/helpers/createClass":5}],40:[function(e,t){function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t,n){for(var r=[],i=[r],a=[];;){var l=e.parseExpression(!1,null);l=new o["default"]("ordgroup",l,e.mode),n&&(l=new o["default"]("styling",{style:n,value:[l]},e.mode)),r.push(l);var u=e.nextToken.text;if("&"===u)e.consume();else{if("\\end"===u)break;if("\\\\"!==u&&"\\cr"!==u)throw new s["default"]("Expected & or \\\\ or \\end",e.nextToken);var d=e.parseFunction();a.push(d.value.size),r=[],i.push(r)}}return t.body=i,t.rowGaps=a,new o["default"](t.type,t,e.mode)}function i(e,n,r){"string"==typeof e&&(e=[e]),"number"==typeof n&&(n={numArgs:n});for(var i={numArgs:n.numArgs||0,argTypes:n.argTypes,greediness:1,allowedInText:!!n.allowedInText,numOptionalArgs:n.numOptionalArgs||0,handler:r},a=0;a0&&(l=2),t.value.cols[a]={type:"align",align:s,pregap:l,postgap:0}}return t}),i("gathered",{},function(e){var t={type:"array",cols:[{type:"align",align:"c"}],addJot:!0};return t=r(e.parser,t,"display")})},{"./ParseError":29,"./ParseNode":30}],41:[function(e,t){function n(e){return e&&e.__esModule?e:{"default":e}}var r=e("./unicodeRegexes"),i=n(e("./fontMetricsData")),a={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2]},o={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xc6":"A","\xc7":"C","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xd0":"D","\xd1":"N","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xdd":"Y","\xde":"o","\xdf":"B","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xe6":"a","\xe7":"c","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xf0":"d","\xf1":"n","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xfd":"y","\xfe":"o","\xff":"y","\u0410":"A","\u0411":"B","\u0412":"B","\u0413":"F","\u0414":"A","\u0415":"E","\u0416":"K","\u0417":"3","\u0418":"N","\u0419":"N","\u041a":"K","\u041b":"N","\u041c":"M","\u041d":"H","\u041e":"O","\u041f":"N","\u0420":"P","\u0421":"C","\u0422":"T","\u0423":"y","\u0424":"O","\u0425":"X","\u0426":"U","\u0427":"h","\u0428":"W","\u0429":"W","\u042a":"B","\u042b":"X","\u042c":"B","\u042d":"3","\u042e":"X","\u042f":"R","\u0430":"a","\u0431":"b","\u0432":"a","\u0433":"r","\u0434":"y","\u0435":"e","\u0436":"m","\u0437":"e","\u0438":"n","\u0439":"n","\u043a":"n","\u043b":"n","\u043c":"m","\u043d":"n","\u043e":"o","\u043f":"n","\u0440":"p","\u0441":"c","\u0442":"o","\u0443":"y","\u0444":"b","\u0445":"x","\u0446":"n","\u0447":"n","\u0448":"w","\u0449":"w","\u044a":"a","\u044b":"m","\u044c":"a","\u044d":"e","\u044e":"m","\u044f":"r"},s=function(e,t){var n=e.charCodeAt(0);e[0]in o?n=o[e[0]].charCodeAt(0):r.cjkRegex.test(e[0])&&(n="M".charCodeAt(0));var a=i["default"][t][n];if(a)return{depth:a[0],height:a[1],italic:a[2],skew:a[3],width:a[4]}},l={},u=function(e){var t=void 0;if(!l[t=e>=5?0:e>=3?1:2]){var n=l[t]={};for(var r in a)a.hasOwnProperty(r)&&(n[r]=a[r][t]);n.cssEmPerMu=n.quad/18}return l[t]};t.exports={getFontMetrics:u,getCharacterMetrics:s}},{"./fontMetricsData":42,"./unicodeRegexes":49}],42:[function(e,t){t.exports={"AMS-Regular":{65:[0,.68889,0,0],66:[0,.68889,0,0],67:[0,.68889,0,0],68:[0,.68889,0,0],69:[0,.68889,0,0],70:[0,.68889,0,0],71:[0,.68889,0,0],72:[0,.68889,0,0],73:[0,.68889,0,0],74:[.16667,.68889,0,0],75:[0,.68889,0,0],76:[0,.68889,0,0],77:[0,.68889,0,0],78:[0,.68889,0,0],79:[.16667,.68889,0,0],80:[0,.68889,0,0],81:[.16667,.68889,0,0],82:[0,.68889,0,0],83:[0,.68889,0,0],84:[0,.68889,0,0],85:[0,.68889,0,0],86:[0,.68889,0,0],87:[0,.68889,0,0],88:[0,.68889,0,0],89:[0,.68889,0,0],90:[0,.68889,0,0],107:[0,.68889,0,0],165:[0,.675,.025,0],174:[.15559,.69224,0,0],240:[0,.68889,0,0],295:[0,.68889,0,0],710:[0,.825,0,0],732:[0,.9,0,0],770:[0,.825,0,0],771:[0,.9,0,0],989:[.08167,.58167,0,0],1008:[0,.43056,.04028,0],8245:[0,.54986,0,0],8463:[0,.68889,0,0],8487:[0,.68889,0,0],8498:[0,.68889,0,0],8502:[0,.68889,0,0],8503:[0,.68889,0,0],8504:[0,.68889,0,0],8513:[0,.68889,0,0],8592:[-.03598,.46402,0,0],8594:[-.03598,.46402,0,0],8602:[-.13313,.36687,0,0],8603:[-.13313,.36687,0,0],8606:[.01354,.52239,0,0],8608:[.01354,.52239,0,0],8610:[.01354,.52239,0,0],8611:[.01354,.52239,0,0],8619:[0,.54986,0,0],8620:[0,.54986,0,0],8621:[-.13313,.37788,0,0],8622:[-.13313,.36687,0,0],8624:[0,.69224,0,0],8625:[0,.69224,0,0],8630:[0,.43056,0,0],8631:[0,.43056,0,0],8634:[.08198,.58198,0,0],8635:[.08198,.58198,0,0],8638:[.19444,.69224,0,0],8639:[.19444,.69224,0,0],8642:[.19444,.69224,0,0],8643:[.19444,.69224,0,0],8644:[.1808,.675,0,0],8646:[.1808,.675,0,0],8647:[.1808,.675,0,0],8648:[.19444,.69224,0,0],8649:[.1808,.675,0,0],8650:[.19444,.69224,0,0],8651:[.01354,.52239,0,0],8652:[.01354,.52239,0,0],8653:[-.13313,.36687,0,0],8654:[-.13313,.36687,0,0],8655:[-.13313,.36687,0,0],8666:[.13667,.63667,0,0],8667:[.13667,.63667,0,0],8669:[-.13313,.37788,0,0],8672:[-.064,.437,0,0],8674:[-.064,.437,0,0],8705:[0,.825,0,0],8708:[0,.68889,0,0],8709:[.08167,.58167,0,0],8717:[0,.43056,0,0],8722:[-.03598,.46402,0,0],8724:[.08198,.69224,0,0],8726:[.08167,.58167,0,0],8733:[0,.69224,0,0],8736:[0,.69224,0,0],8737:[0,.69224,0,0],8738:[.03517,.52239,0,0],8739:[.08167,.58167,0,0],8740:[.25142,.74111,0,0],8741:[.08167,.58167,0,0],8742:[.25142,.74111,0,0],8756:[0,.69224,0,0],8757:[0,.69224,0,0],8764:[-.13313,.36687,0,0],8765:[-.13313,.37788,0,0],8769:[-.13313,.36687,0,0],8770:[-.03625,.46375,0,0],8774:[.30274,.79383,0,0],8776:[-.01688,.48312,0,0],8778:[.08167,.58167,0,0],8782:[.06062,.54986,0,0],8783:[.06062,.54986,0,0],8785:[.08198,.58198,0,0],8786:[.08198,.58198,0,0],8787:[.08198,.58198,0,0],8790:[0,.69224,0,0],8791:[.22958,.72958,0,0],8796:[.08198,.91667,0,0],8806:[.25583,.75583,0,0],8807:[.25583,.75583,0,0],8808:[.25142,.75726,0,0],8809:[.25142,.75726,0,0],8812:[.25583,.75583,0,0],8814:[.20576,.70576,0,0],8815:[.20576,.70576,0,0],8816:[.30274,.79383,0,0],8817:[.30274,.79383,0,0],8818:[.22958,.72958,0,0],8819:[.22958,.72958,0,0],8822:[.1808,.675,0,0],8823:[.1808,.675,0,0],8828:[.13667,.63667,0,0],8829:[.13667,.63667,0,0],8830:[.22958,.72958,0,0],8831:[.22958,.72958,0,0],8832:[.20576,.70576,0,0],8833:[.20576,.70576,0,0],8840:[.30274,.79383,0,0],8841:[.30274,.79383,0,0],8842:[.13597,.63597,0,0],8843:[.13597,.63597,0,0],8847:[.03517,.54986,0,0],8848:[.03517,.54986,0,0],8858:[.08198,.58198,0,0],8859:[.08198,.58198,0,0],8861:[.08198,.58198,0,0],8862:[0,.675,0,0],8863:[0,.675,0,0],8864:[0,.675,0,0],8865:[0,.675,0,0],8872:[0,.69224,0,0],8873:[0,.69224,0,0],8874:[0,.69224,0,0],8876:[0,.68889,0,0],8877:[0,.68889,0,0],8878:[0,.68889,0,0],8879:[0,.68889,0,0],8882:[.03517,.54986,0,0],8883:[.03517,.54986,0,0],8884:[.13667,.63667,0,0],8885:[.13667,.63667,0,0],8888:[0,.54986,0,0],8890:[.19444,.43056,0,0],8891:[.19444,.69224,0,0],8892:[.19444,.69224,0,0],8901:[0,.54986,0,0],8903:[.08167,.58167,0,0],8905:[.08167,.58167,0,0],8906:[.08167,.58167,0,0],8907:[0,.69224,0,0],8908:[0,.69224,0,0],8909:[-.03598,.46402,0,0],8910:[0,.54986,0,0],8911:[0,.54986,0,0],8912:[.03517,.54986,0,0],8913:[.03517,.54986,0,0],8914:[0,.54986,0,0],8915:[0,.54986,0,0],8916:[0,.69224,0,0],8918:[.0391,.5391,0,0],8919:[.0391,.5391,0,0],8920:[.03517,.54986,0,0],8921:[.03517,.54986,0,0],8922:[.38569,.88569,0,0],8923:[.38569,.88569,0,0],8926:[.13667,.63667,0,0],8927:[.13667,.63667,0,0],8928:[.30274,.79383,0,0],8929:[.30274,.79383,0,0],8934:[.23222,.74111,0,0],8935:[.23222,.74111,0,0],8936:[.23222,.74111,0,0],8937:[.23222,.74111,0,0],8938:[.20576,.70576,0,0],8939:[.20576,.70576,0,0],8940:[.30274,.79383,0,0],8941:[.30274,.79383,0,0],8994:[.19444,.69224,0,0],8995:[.19444,.69224,0,0],9416:[.15559,.69224,0,0],9484:[0,.69224,0,0],9488:[0,.69224,0,0],9492:[0,.37788,0,0],9496:[0,.37788,0,0],9585:[.19444,.68889,0,0],9586:[.19444,.74111,0,0],9632:[0,.675,0,0],9633:[0,.675,0,0],9650:[0,.54986,0,0],9651:[0,.54986,0,0],9654:[.03517,.54986,0,0],9660:[0,.54986,0,0],9661:[0,.54986,0,0],9664:[.03517,.54986,0,0],9674:[.11111,.69224,0,0],9733:[.19444,.69224,0,0],10003:[0,.69224,0,0],10016:[0,.69224,0,0],10731:[.11111,.69224,0,0],10846:[.19444,.75583,0,0],10877:[.13667,.63667,0,0],10878:[.13667,.63667,0,0],10885:[.25583,.75583,0,0],10886:[.25583,.75583,0,0],10887:[.13597,.63597,0,0],10888:[.13597,.63597,0,0],10889:[.26167,.75726,0,0],10890:[.26167,.75726,0,0],10891:[.48256,.98256,0,0],10892:[.48256,.98256,0,0],10901:[.13667,.63667,0,0],10902:[.13667,.63667,0,0],10933:[.25142,.75726,0,0],10934:[.25142,.75726,0,0],10935:[.26167,.75726,0,0],10936:[.26167,.75726,0,0],10937:[.26167,.75726,0,0],10938:[.26167,.75726,0,0],10949:[.25583,.75583,0,0],10950:[.25583,.75583,0,0],10955:[.28481,.79383,0,0],10956:[.28481,.79383,0,0],57350:[.08167,.58167,0,0],57351:[.08167,.58167,0,0],57352:[.08167,.58167,0,0],57353:[0,.43056,.04028,0],57356:[.25142,.75726,0,0],57357:[.25142,.75726,0,0],57358:[.41951,.91951,0,0],57359:[.30274,.79383,0,0],57360:[.30274,.79383,0,0],57361:[.41951,.91951,0,0],57366:[.25142,.75726,0,0],57367:[.25142,.75726,0,0],57368:[.25142,.75726,0,0],57369:[.25142,.75726,0,0],57370:[.13597,.63597,0,0],57371:[.13597,.63597,0,0]},"Caligraphic-Regular":{48:[0,.43056,0,0],49:[0,.43056,0,0],50:[0,.43056,0,0],51:[.19444,.43056,0,0],52:[.19444,.43056,0,0],53:[.19444,.43056,0,0],54:[0,.64444,0,0],55:[.19444,.43056,0,0],56:[0,.64444,0,0],57:[.19444,.43056,0,0],65:[0,.68333,0,.19445],66:[0,.68333,.03041,.13889],67:[0,.68333,.05834,.13889], +68:[0,.68333,.02778,.08334],69:[0,.68333,.08944,.11111],70:[0,.68333,.09931,.11111],71:[.09722,.68333,.0593,.11111],72:[0,.68333,.00965,.11111],73:[0,.68333,.07382,0],74:[.09722,.68333,.18472,.16667],75:[0,.68333,.01445,.05556],76:[0,.68333,0,.13889],77:[0,.68333,0,.13889],78:[0,.68333,.14736,.08334],79:[0,.68333,.02778,.11111],80:[0,.68333,.08222,.08334],81:[.09722,.68333,0,.11111],82:[0,.68333,0,.08334],83:[0,.68333,.075,.13889],84:[0,.68333,.25417,0],85:[0,.68333,.09931,.08334],86:[0,.68333,.08222,0],87:[0,.68333,.08222,.08334],88:[0,.68333,.14643,.13889],89:[.09722,.68333,.08222,.08334],90:[0,.68333,.07944,.13889]},"Fraktur-Regular":{33:[0,.69141,0,0],34:[0,.69141,0,0],38:[0,.69141,0,0],39:[0,.69141,0,0],40:[.24982,.74947,0,0],41:[.24982,.74947,0,0],42:[0,.62119,0,0],43:[.08319,.58283,0,0],44:[0,.10803,0,0],45:[.08319,.58283,0,0],46:[0,.10803,0,0],47:[.24982,.74947,0,0],48:[0,.47534,0,0],49:[0,.47534,0,0],50:[0,.47534,0,0],51:[.18906,.47534,0,0],52:[.18906,.47534,0,0],53:[.18906,.47534,0,0],54:[0,.69141,0,0],55:[.18906,.47534,0,0],56:[0,.69141,0,0],57:[.18906,.47534,0,0],58:[0,.47534,0,0],59:[.12604,.47534,0,0],61:[-.13099,.36866,0,0],63:[0,.69141,0,0],65:[0,.69141,0,0],66:[0,.69141,0,0],67:[0,.69141,0,0],68:[0,.69141,0,0],69:[0,.69141,0,0],70:[.12604,.69141,0,0],71:[0,.69141,0,0],72:[.06302,.69141,0,0],73:[0,.69141,0,0],74:[.12604,.69141,0,0],75:[0,.69141,0,0],76:[0,.69141,0,0],77:[0,.69141,0,0],78:[0,.69141,0,0],79:[0,.69141,0,0],80:[.18906,.69141,0,0],81:[.03781,.69141,0,0],82:[0,.69141,0,0],83:[0,.69141,0,0],84:[0,.69141,0,0],85:[0,.69141,0,0],86:[0,.69141,0,0],87:[0,.69141,0,0],88:[0,.69141,0,0],89:[.18906,.69141,0,0],90:[.12604,.69141,0,0],91:[.24982,.74947,0,0],93:[.24982,.74947,0,0],94:[0,.69141,0,0],97:[0,.47534,0,0],98:[0,.69141,0,0],99:[0,.47534,0,0],100:[0,.62119,0,0],101:[0,.47534,0,0],102:[.18906,.69141,0,0],103:[.18906,.47534,0,0],104:[.18906,.69141,0,0],105:[0,.69141,0,0],106:[0,.69141,0,0],107:[0,.69141,0,0],108:[0,.69141,0,0],109:[0,.47534,0,0],110:[0,.47534,0,0],111:[0,.47534,0,0],112:[.18906,.52396,0,0],113:[.18906,.47534,0,0],114:[0,.47534,0,0],115:[0,.47534,0,0],116:[0,.62119,0,0],117:[0,.47534,0,0],118:[0,.52396,0,0],119:[0,.52396,0,0],120:[.18906,.47534,0,0],121:[.18906,.47534,0,0],122:[.18906,.47534,0,0],8216:[0,.69141,0,0],8217:[0,.69141,0,0],58112:[0,.62119,0,0],58113:[0,.62119,0,0],58114:[.18906,.69141,0,0],58115:[.18906,.69141,0,0],58116:[.18906,.47534,0,0],58117:[0,.69141,0,0],58118:[0,.62119,0,0],58119:[0,.47534,0,0]},"Main-Bold":{33:[0,.69444,0,0],34:[0,.69444,0,0],35:[.19444,.69444,0,0],36:[.05556,.75,0,0],37:[.05556,.75,0,0],38:[0,.69444,0,0],39:[0,.69444,0,0],40:[.25,.75,0,0],41:[.25,.75,0,0],42:[0,.75,0,0],43:[.13333,.63333,0,0],44:[.19444,.15556,0,0],45:[0,.44444,0,0],46:[0,.15556,0,0],47:[.25,.75,0,0],48:[0,.64444,0,0],49:[0,.64444,0,0],50:[0,.64444,0,0],51:[0,.64444,0,0],52:[0,.64444,0,0],53:[0,.64444,0,0],54:[0,.64444,0,0],55:[0,.64444,0,0],56:[0,.64444,0,0],57:[0,.64444,0,0],58:[0,.44444,0,0],59:[.19444,.44444,0,0],60:[.08556,.58556,0,0],61:[-.10889,.39111,0,0],62:[.08556,.58556,0,0],63:[0,.69444,0,0],64:[0,.69444,0,0],65:[0,.68611,0,0],66:[0,.68611,0,0],67:[0,.68611,0,0],68:[0,.68611,0,0],69:[0,.68611,0,0],70:[0,.68611,0,0],71:[0,.68611,0,0],72:[0,.68611,0,0],73:[0,.68611,0,0],74:[0,.68611,0,0],75:[0,.68611,0,0],76:[0,.68611,0,0],77:[0,.68611,0,0],78:[0,.68611,0,0],79:[0,.68611,0,0],80:[0,.68611,0,0],81:[.19444,.68611,0,0],82:[0,.68611,0,0],83:[0,.68611,0,0],84:[0,.68611,0,0],85:[0,.68611,0,0],86:[0,.68611,.01597,0],87:[0,.68611,.01597,0],88:[0,.68611,0,0],89:[0,.68611,.02875,0],90:[0,.68611,0,0],91:[.25,.75,0,0],92:[.25,.75,0,0],93:[.25,.75,0,0],94:[0,.69444,0,0],95:[.31,.13444,.03194,0],96:[0,.69444,0,0],97:[0,.44444,0,0],98:[0,.69444,0,0],99:[0,.44444,0,0],100:[0,.69444,0,0],101:[0,.44444,0,0],102:[0,.69444,.10903,0],103:[.19444,.44444,.01597,0],104:[0,.69444,0,0],105:[0,.69444,0,0],106:[.19444,.69444,0,0],107:[0,.69444,0,0],108:[0,.69444,0,0],109:[0,.44444,0,0],110:[0,.44444,0,0],111:[0,.44444,0,0],112:[.19444,.44444,0,0],113:[.19444,.44444,0,0],114:[0,.44444,0,0],115:[0,.44444,0,0],116:[0,.63492,0,0],117:[0,.44444,0,0],118:[0,.44444,.01597,0],119:[0,.44444,.01597,0],120:[0,.44444,0,0],121:[.19444,.44444,.01597,0],122:[0,.44444,0,0],123:[.25,.75,0,0],124:[.25,.75,0,0],125:[.25,.75,0,0],126:[.35,.34444,0,0],168:[0,.69444,0,0],172:[0,.44444,0,0],175:[0,.59611,0,0],176:[0,.69444,0,0],177:[.13333,.63333,0,0],180:[0,.69444,0,0],215:[.13333,.63333,0,0],247:[.13333,.63333,0,0],305:[0,.44444,0,0],567:[.19444,.44444,0,0],710:[0,.69444,0,0],711:[0,.63194,0,0],713:[0,.59611,0,0],714:[0,.69444,0,0],715:[0,.69444,0,0],728:[0,.69444,0,0],729:[0,.69444,0,0],730:[0,.69444,0,0],732:[0,.69444,0,0],768:[0,.69444,0,0],769:[0,.69444,0,0],770:[0,.69444,0,0],771:[0,.69444,0,0],772:[0,.59611,0,0],774:[0,.69444,0,0],775:[0,.69444,0,0],776:[0,.69444,0,0],778:[0,.69444,0,0],779:[0,.69444,0,0],780:[0,.63194,0,0],824:[.19444,.69444,0,0],915:[0,.68611,0,0],916:[0,.68611,0,0],920:[0,.68611,0,0],923:[0,.68611,0,0],926:[0,.68611,0,0],928:[0,.68611,0,0],931:[0,.68611,0,0],933:[0,.68611,0,0],934:[0,.68611,0,0],936:[0,.68611,0,0],937:[0,.68611,0,0],8211:[0,.44444,.03194,0],8212:[0,.44444,.03194,0],8216:[0,.69444,0,0],8217:[0,.69444,0,0],8220:[0,.69444,0,0],8221:[0,.69444,0,0],8224:[.19444,.69444,0,0],8225:[.19444,.69444,0,0],8242:[0,.55556,0,0],8407:[0,.72444,.15486,0],8463:[0,.69444,0,0],8465:[0,.69444,0,0],8467:[0,.69444,0,0],8472:[.19444,.44444,0,0],8476:[0,.69444,0,0],8501:[0,.69444,0,0],8592:[-.10889,.39111,0,0],8593:[.19444,.69444,0,0],8594:[-.10889,.39111,0,0],8595:[.19444,.69444,0,0],8596:[-.10889,.39111,0,0],8597:[.25,.75,0,0],8598:[.19444,.69444,0,0],8599:[.19444,.69444,0,0],8600:[.19444,.69444,0,0],8601:[.19444,.69444,0,0],8636:[-.10889,.39111,0,0],8637:[-.10889,.39111,0,0],8640:[-.10889,.39111,0,0],8641:[-.10889,.39111,0,0],8656:[-.10889,.39111,0,0],8657:[.19444,.69444,0,0],8658:[-.10889,.39111,0,0],8659:[.19444,.69444,0,0],8660:[-.10889,.39111,0,0],8661:[.25,.75,0,0],8704:[0,.69444,0,0],8706:[0,.69444,.06389,0],8707:[0,.69444,0,0],8709:[.05556,.75,0,0],8711:[0,.68611,0,0],8712:[.08556,.58556,0,0],8715:[.08556,.58556,0,0],8722:[.13333,.63333,0,0],8723:[.13333,.63333,0,0],8725:[.25,.75,0,0],8726:[.25,.75,0,0],8727:[-.02778,.47222,0,0],8728:[-.02639,.47361,0,0],8729:[-.02639,.47361,0,0],8730:[.18,.82,0,0],8733:[0,.44444,0,0],8734:[0,.44444,0,0],8736:[0,.69224,0,0],8739:[.25,.75,0,0],8741:[.25,.75,0,0],8743:[0,.55556,0,0],8744:[0,.55556,0,0],8745:[0,.55556,0,0],8746:[0,.55556,0,0],8747:[.19444,.69444,.12778,0],8764:[-.10889,.39111,0,0],8768:[.19444,.69444,0,0],8771:[.00222,.50222,0,0],8776:[.02444,.52444,0,0],8781:[.00222,.50222,0,0],8801:[.00222,.50222,0,0],8804:[.19667,.69667,0,0],8805:[.19667,.69667,0,0],8810:[.08556,.58556,0,0],8811:[.08556,.58556,0,0],8826:[.08556,.58556,0,0],8827:[.08556,.58556,0,0],8834:[.08556,.58556,0,0],8835:[.08556,.58556,0,0],8838:[.19667,.69667,0,0],8839:[.19667,.69667,0,0],8846:[0,.55556,0,0],8849:[.19667,.69667,0,0],8850:[.19667,.69667,0,0],8851:[0,.55556,0,0],8852:[0,.55556,0,0],8853:[.13333,.63333,0,0],8854:[.13333,.63333,0,0],8855:[.13333,.63333,0,0],8856:[.13333,.63333,0,0],8857:[.13333,.63333,0,0],8866:[0,.69444,0,0],8867:[0,.69444,0,0],8868:[0,.69444,0,0],8869:[0,.69444,0,0],8900:[-.02639,.47361,0,0],8901:[-.02639,.47361,0,0],8902:[-.02778,.47222,0,0],8968:[.25,.75,0,0],8969:[.25,.75,0,0],8970:[.25,.75,0,0],8971:[.25,.75,0,0],8994:[-.13889,.36111,0,0],8995:[-.13889,.36111,0,0],9651:[.19444,.69444,0,0],9657:[-.02778,.47222,0,0],9661:[.19444,.69444,0,0],9667:[-.02778,.47222,0,0],9711:[.19444,.69444,0,0],9824:[.12963,.69444,0,0],9825:[.12963,.69444,0,0],9826:[.12963,.69444,0,0],9827:[.12963,.69444,0,0],9837:[0,.75,0,0],9838:[.19444,.69444,0,0],9839:[.19444,.69444,0,0],10216:[.25,.75,0,0],10217:[.25,.75,0,0],10815:[0,.68611,0,0],10927:[.19667,.69667,0,0],10928:[.19667,.69667,0,0]},"Main-Italic":{33:[0,.69444,.12417,0],34:[0,.69444,.06961,0],35:[.19444,.69444,.06616,0],37:[.05556,.75,.13639,0],38:[0,.69444,.09694,0],39:[0,.69444,.12417,0],40:[.25,.75,.16194,0],41:[.25,.75,.03694,0],42:[0,.75,.14917,0],43:[.05667,.56167,.03694,0],44:[.19444,.10556,0,0],45:[0,.43056,.02826,0],46:[0,.10556,0,0],47:[.25,.75,.16194,0],48:[0,.64444,.13556,0],49:[0,.64444,.13556,0],50:[0,.64444,.13556,0],51:[0,.64444,.13556,0],52:[.19444,.64444,.13556,0],53:[0,.64444,.13556,0],54:[0,.64444,.13556,0],55:[.19444,.64444,.13556,0],56:[0,.64444,.13556,0],57:[0,.64444,.13556,0],58:[0,.43056,.0582,0],59:[.19444,.43056,.0582,0],61:[-.13313,.36687,.06616,0],63:[0,.69444,.1225,0],64:[0,.69444,.09597,0],65:[0,.68333,0,0],66:[0,.68333,.10257,0],67:[0,.68333,.14528,0],68:[0,.68333,.09403,0],69:[0,.68333,.12028,0],70:[0,.68333,.13305,0],71:[0,.68333,.08722,0],72:[0,.68333,.16389,0],73:[0,.68333,.15806,0],74:[0,.68333,.14028,0],75:[0,.68333,.14528,0],76:[0,.68333,0,0],77:[0,.68333,.16389,0],78:[0,.68333,.16389,0],79:[0,.68333,.09403,0],80:[0,.68333,.10257,0],81:[.19444,.68333,.09403,0],82:[0,.68333,.03868,0],83:[0,.68333,.11972,0],84:[0,.68333,.13305,0],85:[0,.68333,.16389,0],86:[0,.68333,.18361,0],87:[0,.68333,.18361,0],88:[0,.68333,.15806,0],89:[0,.68333,.19383,0],90:[0,.68333,.14528,0],91:[.25,.75,.1875,0],93:[.25,.75,.10528,0],94:[0,.69444,.06646,0],95:[.31,.12056,.09208,0],97:[0,.43056,.07671,0],98:[0,.69444,.06312,0],99:[0,.43056,.05653,0],100:[0,.69444,.10333,0],101:[0,.43056,.07514,0],102:[.19444,.69444,.21194,0],103:[.19444,.43056,.08847,0],104:[0,.69444,.07671,0],105:[0,.65536,.1019,0],106:[.19444,.65536,.14467,0],107:[0,.69444,.10764,0],108:[0,.69444,.10333,0],109:[0,.43056,.07671,0],110:[0,.43056,.07671,0],111:[0,.43056,.06312,0],112:[.19444,.43056,.06312,0],113:[.19444,.43056,.08847,0],114:[0,.43056,.10764,0],115:[0,.43056,.08208,0],116:[0,.61508,.09486,0],117:[0,.43056,.07671,0],118:[0,.43056,.10764,0],119:[0,.43056,.10764,0],120:[0,.43056,.12042,0],121:[.19444,.43056,.08847,0],122:[0,.43056,.12292,0],126:[.35,.31786,.11585,0],163:[0,.69444,0,0],305:[0,.43056,0,.02778],567:[.19444,.43056,0,.08334],768:[0,.69444,0,0],769:[0,.69444,.09694,0],770:[0,.69444,.06646,0],771:[0,.66786,.11585,0],772:[0,.56167,.10333,0],774:[0,.69444,.10806,0],775:[0,.66786,.11752,0],776:[0,.66786,.10474,0],778:[0,.69444,0,0],779:[0,.69444,.1225,0],780:[0,.62847,.08295,0],915:[0,.68333,.13305,0],916:[0,.68333,0,0],920:[0,.68333,.09403,0],923:[0,.68333,0,0],926:[0,.68333,.15294,0],928:[0,.68333,.16389,0],931:[0,.68333,.12028,0],933:[0,.68333,.11111,0],934:[0,.68333,.05986,0],936:[0,.68333,.11111,0],937:[0,.68333,.10257,0],8211:[0,.43056,.09208,0],8212:[0,.43056,.09208,0],8216:[0,.69444,.12417,0],8217:[0,.69444,.12417,0],8220:[0,.69444,.1685,0],8221:[0,.69444,.06961,0],8463:[0,.68889,0,0]},"Main-Regular":{32:[0,0,0,0],33:[0,.69444,0,0],34:[0,.69444,0,0],35:[.19444,.69444,0,0],36:[.05556,.75,0,0],37:[.05556,.75,0,0],38:[0,.69444,0,0],39:[0,.69444,0,0],40:[.25,.75,0,0],41:[.25,.75,0,0],42:[0,.75,0,0],43:[.08333,.58333,0,0],44:[.19444,.10556,0,0],45:[0,.43056,0,0],46:[0,.10556,0,0],47:[.25,.75,0,0],48:[0,.64444,0,0],49:[0,.64444,0,0],50:[0,.64444,0,0],51:[0,.64444,0,0],52:[0,.64444,0,0],53:[0,.64444,0,0],54:[0,.64444,0,0],55:[0,.64444,0,0],56:[0,.64444,0,0],57:[0,.64444,0,0],58:[0,.43056,0,0],59:[.19444,.43056,0,0],60:[.0391,.5391,0,0],61:[-.13313,.36687,0,0],62:[.0391,.5391,0,0],63:[0,.69444,0,0],64:[0,.69444,0,0],65:[0,.68333,0,0],66:[0,.68333,0,0],67:[0,.68333,0,0],68:[0,.68333,0,0],69:[0,.68333,0,0],70:[0,.68333,0,0],71:[0,.68333,0,0],72:[0,.68333,0,0],73:[0,.68333,0,0],74:[0,.68333,0,0],75:[0,.68333,0,0],76:[0,.68333,0,0],77:[0,.68333,0,0],78:[0,.68333,0,0],79:[0,.68333,0,0],80:[0,.68333,0,0],81:[.19444,.68333,0,0],82:[0,.68333,0,0],83:[0,.68333,0,0],84:[0,.68333,0,0],85:[0,.68333,0,0],86:[0,.68333,.01389,0],87:[0,.68333,.01389,0],88:[0,.68333,0,0],89:[0,.68333,.025,0],90:[0,.68333,0,0],91:[.25,.75,0,0],92:[.25,.75,0,0],93:[.25,.75,0,0],94:[0,.69444,0,0],95:[.31,.12056,.02778,0],96:[0,.69444,0,0],97:[0,.43056,0,0],98:[0,.69444,0,0],99:[0,.43056,0,0],100:[0,.69444,0,0],101:[0,.43056,0,0],102:[0,.69444,.07778,0],103:[.19444,.43056,.01389,0],104:[0,.69444,0,0],105:[0,.66786,0,0],106:[.19444,.66786,0,0],107:[0,.69444,0,0],108:[0,.69444,0,0],109:[0,.43056,0,0],110:[0,.43056,0,0],111:[0,.43056,0,0],112:[.19444,.43056,0,0],113:[.19444,.43056,0,0],114:[0,.43056,0,0],115:[0,.43056,0,0],116:[0,.61508,0,0],117:[0,.43056,0,0],118:[0,.43056,.01389,0],119:[0,.43056,.01389,0],120:[0,.43056,0,0],121:[.19444,.43056,.01389,0],122:[0,.43056,0,0],123:[.25,.75,0,0],124:[.25,.75,0,0],125:[.25,.75,0,0],126:[.35,.31786,0,0],160:[0,0,0,0],168:[0,.66786,0,0],172:[0,.43056,0,0],175:[0,.56778,0,0],176:[0,.69444,0,0],177:[.08333,.58333,0,0],180:[0,.69444,0,0],215:[.08333,.58333,0,0],247:[.08333,.58333,0,0],305:[0,.43056,0,0],567:[.19444,.43056,0,0],710:[0,.69444,0,0],711:[0,.62847,0,0],713:[0,.56778,0,0],714:[0,.69444,0,0],715:[0,.69444,0,0],728:[0,.69444,0,0],729:[0,.66786,0,0],730:[0,.69444,0,0],732:[0,.66786,0,0],768:[0,.69444,0,0],769:[0,.69444,0,0],770:[0,.69444,0,0],771:[0,.66786,0,0],772:[0,.56778,0,0],774:[0,.69444,0,0],775:[0,.66786,0,0],776:[0,.66786,0,0],778:[0,.69444,0,0],779:[0,.69444,0,0],780:[0,.62847,0,0],824:[.19444,.69444,0,0],915:[0,.68333,0,0],916:[0,.68333,0,0],920:[0,.68333,0,0],923:[0,.68333,0,0],926:[0,.68333,0,0],928:[0,.68333,0,0],931:[0,.68333,0,0],933:[0,.68333,0,0],934:[0,.68333,0,0],936:[0,.68333,0,0],937:[0,.68333,0,0],8211:[0,.43056,.02778,0],8212:[0,.43056,.02778,0],8216:[0,.69444,0,0],8217:[0,.69444,0,0],8220:[0,.69444,0,0],8221:[0,.69444,0,0],8224:[.19444,.69444,0,0],8225:[.19444,.69444,0,0],8230:[0,.12,0,0],8242:[0,.55556,0,0],8407:[0,.71444,.15382,0],8463:[0,.68889,0,0],8465:[0,.69444,0,0],8467:[0,.69444,0,.11111],8472:[.19444,.43056,0,.11111],8476:[0,.69444,0,0],8501:[0,.69444,0,0],8592:[-.13313,.36687,0,0],8593:[.19444,.69444,0,0],8594:[-.13313,.36687,0,0],8595:[.19444,.69444,0,0],8596:[-.13313,.36687,0,0],8597:[.25,.75,0,0],8598:[.19444,.69444,0,0],8599:[.19444,.69444,0,0],8600:[.19444,.69444,0,0],8601:[.19444,.69444,0,0],8614:[.011,.511,0,0],8617:[.011,.511,0,0],8618:[.011,.511,0,0],8636:[-.13313,.36687,0,0],8637:[-.13313,.36687,0,0],8640:[-.13313,.36687,0,0],8641:[-.13313,.36687,0,0],8652:[.011,.671,0,0],8656:[-.13313,.36687,0,0],8657:[.19444,.69444,0,0],8658:[-.13313,.36687,0,0],8659:[.19444,.69444,0,0],8660:[-.13313,.36687,0,0],8661:[.25,.75,0,0],8704:[0,.69444,0,0],8706:[0,.69444,.05556,.08334],8707:[0,.69444,0,0],8709:[.05556,.75,0,0],8711:[0,.68333,0,0],8712:[.0391,.5391,0,0],8715:[.0391,.5391,0,0],8722:[.08333,.58333,0,0],8723:[.08333,.58333,0,0],8725:[.25,.75,0,0],8726:[.25,.75,0,0],8727:[-.03472,.46528,0,0],8728:[-.05555,.44445,0,0],8729:[-.05555,.44445,0,0],8730:[.2,.8,0,0],8733:[0,.43056,0,0],8734:[0,.43056,0,0],8736:[0,.69224,0,0],8739:[.25,.75,0,0],8741:[.25,.75,0,0],8743:[0,.55556,0,0],8744:[0,.55556,0,0],8745:[0,.55556,0,0],8746:[0,.55556,0,0],8747:[.19444,.69444,.11111,0],8764:[-.13313,.36687,0,0],8768:[.19444,.69444,0,0],8771:[-.03625,.46375,0,0],8773:[-.022,.589,0,0],8776:[-.01688,.48312,0,0],8781:[-.03625,.46375,0,0],8784:[-.133,.67,0,0],8800:[.215,.716,0,0],8801:[-.03625,.46375,0,0],8804:[.13597,.63597,0,0],8805:[.13597,.63597,0,0],8810:[.0391,.5391,0,0],8811:[.0391,.5391,0,0],8826:[.0391,.5391,0,0],8827:[.0391,.5391,0,0],8834:[.0391,.5391,0,0],8835:[.0391,.5391,0,0],8838:[.13597,.63597,0,0],8839:[.13597,.63597,0,0],8846:[0,.55556,0,0],8849:[.13597,.63597,0,0],8850:[.13597,.63597,0,0],8851:[0,.55556,0,0],8852:[0,.55556,0,0],8853:[.08333,.58333,0,0],8854:[.08333,.58333,0,0],8855:[.08333,.58333,0,0],8856:[.08333,.58333,0,0],8857:[.08333,.58333,0,0],8866:[0,.69444,0,0],8867:[0,.69444,0,0],8868:[0,.69444,0,0],8869:[0,.69444,0,0],8872:[.249,.75,0,0],8900:[-.05555,.44445,0,0],8901:[-.05555,.44445,0,0],8902:[-.03472,.46528,0,0],8904:[.005,.505,0,0],8942:[.03,.9,0,0],8943:[-.19,.31,0,0],8945:[-.1,.82,0,0],8968:[.25,.75,0,0],8969:[.25,.75,0,0],8970:[.25,.75,0,0],8971:[.25,.75,0,0],8994:[-.14236,.35764,0,0],8995:[-.14236,.35764,0,0],9136:[.244,.744,0,0],9137:[.244,.744,0,0],9651:[.19444,.69444,0,0],9657:[-.03472,.46528,0,0],9661:[.19444,.69444,0,0],9667:[-.03472,.46528,0,0],9711:[.19444,.69444,0,0],9824:[.12963,.69444,0,0],9825:[.12963,.69444,0,0],9826:[.12963,.69444,0,0],9827:[.12963,.69444,0,0],9837:[0,.75,0,0],9838:[.19444,.69444,0,0],9839:[.19444,.69444,0,0],10216:[.25,.75,0,0],10217:[.25,.75,0,0],10222:[.244,.744,0,0],10223:[.244,.744,0,0],10229:[.011,.511,0,0],10230:[.011,.511,0,0],10231:[.011,.511,0,0],10232:[.024,.525,0,0],10233:[.024,.525,0,0],10234:[.024,.525,0,0],10236:[.011,.511,0,0],10815:[0,.68333,0,0],10927:[.13597,.63597,0,0],10928:[.13597,.63597,0,0]},"Math-BoldItalic":{47:[.19444,.69444,0,0],65:[0,.68611,0,0],66:[0,.68611,.04835,0],67:[0,.68611,.06979,0],68:[0,.68611,.03194,0],69:[0,.68611,.05451,0],70:[0,.68611,.15972,0],71:[0,.68611,0,0],72:[0,.68611,.08229,0],73:[0,.68611,.07778,0],74:[0,.68611,.10069,0],75:[0,.68611,.06979,0],76:[0,.68611,0,0],77:[0,.68611,.11424,0],78:[0,.68611,.11424,0],79:[0,.68611,.03194,0],80:[0,.68611,.15972,0],81:[.19444,.68611,0,0],82:[0,.68611,.00421,0],83:[0,.68611,.05382,0],84:[0,.68611,.15972,0],85:[0,.68611,.11424,0],86:[0,.68611,.25555,0],87:[0,.68611,.15972,0],88:[0,.68611,.07778,0],89:[0,.68611,.25555,0],90:[0,.68611,.06979,0],97:[0,.44444,0,0],98:[0,.69444,0,0],99:[0,.44444,0,0],100:[0,.69444,0,0],101:[0,.44444,0,0],102:[.19444,.69444,.11042,0],103:[.19444,.44444,.03704,0],104:[0,.69444,0,0],105:[0,.69326,0,0],106:[.19444,.69326,.0622,0],107:[0,.69444,.01852,0],108:[0,.69444,.0088,0],109:[0,.44444,0,0],110:[0,.44444,0,0],111:[0,.44444,0,0],112:[.19444,.44444,0,0],113:[.19444,.44444,.03704,0],114:[0,.44444,.03194,0],115:[0,.44444,0,0],116:[0,.63492,0,0],117:[0,.44444,0,0],118:[0,.44444,.03704,0],119:[0,.44444,.02778,0],120:[0,.44444,0,0],121:[.19444,.44444,.03704,0],122:[0,.44444,.04213,0],915:[0,.68611,.15972,0],916:[0,.68611,0,0],920:[0,.68611,.03194,0],923:[0,.68611,0,0],926:[0,.68611,.07458,0],928:[0,.68611,.08229,0],931:[0,.68611,.05451,0],933:[0,.68611,.15972,0],934:[0,.68611,0,0],936:[0,.68611,.11653,0],937:[0,.68611,.04835,0],945:[0,.44444,0,0],946:[.19444,.69444,.03403,0],947:[.19444,.44444,.06389,0],948:[0,.69444,.03819,0],949:[0,.44444,0,0],950:[.19444,.69444,.06215,0],951:[.19444,.44444,.03704,0],952:[0,.69444,.03194,0],953:[0,.44444,0,0],954:[0,.44444,0,0],955:[0,.69444,0,0],956:[.19444,.44444,0,0],957:[0,.44444,.06898,0],958:[.19444,.69444,.03021,0],959:[0,.44444,0,0],960:[0,.44444,.03704,0],961:[.19444,.44444,0,0],962:[.09722,.44444,.07917,0],963:[0,.44444,.03704,0],964:[0,.44444,.13472,0],965:[0,.44444,.03704,0],966:[.19444,.44444,0,0],967:[.19444,.44444,0,0],968:[.19444,.69444,.03704,0],969:[0,.44444,.03704,0],977:[0,.69444,0,0],981:[.19444,.69444,0,0],982:[0,.44444,.03194,0],1009:[.19444,.44444,0,0],1013:[0,.44444,0,0]},"Math-Italic":{47:[.19444,.69444,0,0],65:[0,.68333,0,.13889],66:[0,.68333,.05017,.08334],67:[0,.68333,.07153,.08334],68:[0,.68333,.02778,.05556],69:[0,.68333,.05764,.08334],70:[0,.68333,.13889,.08334],71:[0,.68333,0,.08334],72:[0,.68333,.08125,.05556],73:[0,.68333,.07847,.11111],74:[0,.68333,.09618,.16667],75:[0,.68333,.07153,.05556],76:[0,.68333,0,.02778],77:[0,.68333,.10903,.08334],78:[0,.68333,.10903,.08334],79:[0,.68333,.02778,.08334],80:[0,.68333,.13889,.08334],81:[.19444,.68333,0,.08334],82:[0,.68333,.00773,.08334],83:[0,.68333,.05764,.08334],84:[0,.68333,.13889,.08334],85:[0,.68333,.10903,.02778],86:[0,.68333,.22222,0],87:[0,.68333,.13889,0],88:[0,.68333,.07847,.08334],89:[0,.68333,.22222,0],90:[0,.68333,.07153,.08334],97:[0,.43056,0,0],98:[0,.69444,0,0],99:[0,.43056,0,.05556],100:[0,.69444,0,.16667],101:[0,.43056,0,.05556],102:[.19444,.69444,.10764,.16667],103:[.19444,.43056,.03588,.02778],104:[0,.69444,0,0],105:[0,.65952,0,0],106:[.19444,.65952,.05724,0],107:[0,.69444,.03148,0],108:[0,.69444,.01968,.08334],109:[0,.43056,0,0],110:[0,.43056,0,0],111:[0,.43056,0,.05556],112:[.19444,.43056,0,.08334],113:[.19444,.43056,.03588,.08334],114:[0,.43056,.02778,.05556],115:[0,.43056,0,.05556],116:[0,.61508,0,.08334],117:[0,.43056,0,.02778],118:[0,.43056,.03588,.02778],119:[0,.43056,.02691,.08334],120:[0,.43056,0,.02778],121:[.19444,.43056,.03588,.05556],122:[0,.43056,.04398,.05556],915:[0,.68333,.13889,.08334],916:[0,.68333,0,.16667],920:[0,.68333,.02778,.08334],923:[0,.68333,0,.16667],926:[0,.68333,.07569,.08334],928:[0,.68333,.08125,.05556],931:[0,.68333,.05764,.08334],933:[0,.68333,.13889,.05556],934:[0,.68333,0,.08334],936:[0,.68333,.11,.05556],937:[0,.68333,.05017,.08334],945:[0,.43056,.0037,.02778],946:[.19444,.69444,.05278,.08334],947:[.19444,.43056,.05556,0],948:[0,.69444,.03785,.05556],949:[0,.43056,0,.08334],950:[.19444,.69444,.07378,.08334],951:[.19444,.43056,.03588,.05556],952:[0,.69444,.02778,.08334],953:[0,.43056,0,.05556],954:[0,.43056,0,0],955:[0,.69444,0,0],956:[.19444,.43056,0,.02778],957:[0,.43056,.06366,.02778],958:[.19444,.69444,.04601,.11111],959:[0,.43056,0,.05556],960:[0,.43056,.03588,0],961:[.19444,.43056,0,.08334],962:[.09722,.43056,.07986,.08334],963:[0,.43056,.03588,0],964:[0,.43056,.1132,.02778],965:[0,.43056,.03588,.02778],966:[.19444,.43056,0,.08334],967:[.19444,.43056,0,.05556],968:[.19444,.69444,.03588,.11111],969:[0,.43056,.03588,0],977:[0,.69444,0,.08334],981:[.19444,.69444,0,.08334],982:[0,.43056,.02778,0],1009:[.19444,.43056,0,.08334],1013:[0,.43056,0,.05556]},"Math-Regular":{65:[0,.68333,0,.13889],66:[0,.68333,.05017,.08334],67:[0,.68333,.07153,.08334],68:[0,.68333,.02778,.05556],69:[0,.68333,.05764,.08334],70:[0,.68333,.13889,.08334],71:[0,.68333,0,.08334],72:[0,.68333,.08125,.05556],73:[0,.68333,.07847,.11111],74:[0,.68333,.09618,.16667],75:[0,.68333,.07153,.05556],76:[0,.68333,0,.02778],77:[0,.68333,.10903,.08334],78:[0,.68333,.10903,.08334],79:[0,.68333,.02778,.08334],80:[0,.68333,.13889,.08334],81:[.19444,.68333,0,.08334],82:[0,.68333,.00773,.08334],83:[0,.68333,.05764,.08334],84:[0,.68333,.13889,.08334],85:[0,.68333,.10903,.02778],86:[0,.68333,.22222,0],87:[0,.68333,.13889,0],88:[0,.68333,.07847,.08334],89:[0,.68333,.22222,0],90:[0,.68333,.07153,.08334],97:[0,.43056,0,0],98:[0,.69444,0,0],99:[0,.43056,0,.05556],100:[0,.69444,0,.16667],101:[0,.43056,0,.05556],102:[.19444,.69444,.10764,.16667],103:[.19444,.43056,.03588,.02778],104:[0,.69444,0,0],105:[0,.65952,0,0],106:[.19444,.65952,.05724,0],107:[0,.69444,.03148,0],108:[0,.69444,.01968,.08334],109:[0,.43056,0,0],110:[0,.43056,0,0],111:[0,.43056,0,.05556],112:[.19444,.43056,0,.08334],113:[.19444,.43056,.03588,.08334],114:[0,.43056,.02778,.05556],115:[0,.43056,0,.05556],116:[0,.61508,0,.08334],117:[0,.43056,0,.02778],118:[0,.43056,.03588,.02778],119:[0,.43056,.02691,.08334],120:[0,.43056,0,.02778],121:[.19444,.43056,.03588,.05556],122:[0,.43056,.04398,.05556],915:[0,.68333,.13889,.08334],916:[0,.68333,0,.16667],920:[0,.68333,.02778,.08334],923:[0,.68333,0,.16667],926:[0,.68333,.07569,.08334],928:[0,.68333,.08125,.05556],931:[0,.68333,.05764,.08334],933:[0,.68333,.13889,.05556],934:[0,.68333,0,.08334],936:[0,.68333,.11,.05556],937:[0,.68333,.05017,.08334],945:[0,.43056,.0037,.02778],946:[.19444,.69444,.05278,.08334],947:[.19444,.43056,.05556,0],948:[0,.69444,.03785,.05556],949:[0,.43056,0,.08334],950:[.19444,.69444,.07378,.08334],951:[.19444,.43056,.03588,.05556],952:[0,.69444,.02778,.08334],953:[0,.43056,0,.05556],954:[0,.43056,0,0],955:[0,.69444,0,0],956:[.19444,.43056,0,.02778],957:[0,.43056,.06366,.02778],958:[.19444,.69444,.04601,.11111],959:[0,.43056,0,.05556],960:[0,.43056,.03588,0],961:[.19444,.43056,0,.08334],962:[.09722,.43056,.07986,.08334],963:[0,.43056,.03588,0],964:[0,.43056,.1132,.02778],965:[0,.43056,.03588,.02778],966:[.19444,.43056,0,.08334],967:[.19444,.43056,0,.05556],968:[.19444,.69444,.03588,.11111],969:[0,.43056,.03588,0],977:[0,.69444,0,.08334],981:[.19444,.69444,0,.08334],982:[0,.43056,.02778,0],1009:[.19444,.43056,0,.08334],1013:[0,.43056,0,.05556]},"SansSerif-Regular":{33:[0,.69444,0,0],34:[0,.69444,0,0],35:[.19444,.69444,0,0],36:[.05556,.75,0,0],37:[.05556,.75,0,0],38:[0,.69444,0,0],39:[0,.69444,0,0],40:[.25,.75,0,0],41:[.25,.75,0,0],42:[0,.75,0,0],43:[.08333,.58333,0,0],44:[.125,.08333,0,0],45:[0,.44444,0,0],46:[0,.08333,0,0],47:[.25,.75,0,0],48:[0,.65556,0,0],49:[0,.65556,0,0],50:[0,.65556,0,0],51:[0,.65556,0,0],52:[0,.65556,0,0],53:[0,.65556,0,0],54:[0,.65556,0,0],55:[0,.65556,0,0],56:[0,.65556,0,0],57:[0,.65556,0,0],58:[0,.44444,0,0],59:[.125,.44444,0,0],61:[-.13,.37,0,0],63:[0,.69444,0,0],64:[0,.69444,0,0],65:[0,.69444,0,0],66:[0,.69444,0,0],67:[0,.69444,0,0],68:[0,.69444,0,0],69:[0,.69444,0,0],70:[0,.69444,0,0],71:[0,.69444,0,0],72:[0,.69444,0,0],73:[0,.69444,0,0],74:[0,.69444,0,0],75:[0,.69444,0,0],76:[0,.69444,0,0],77:[0,.69444,0,0],78:[0,.69444,0,0],79:[0,.69444,0,0],80:[0,.69444,0,0],81:[.125,.69444,0,0],82:[0,.69444,0,0],83:[0,.69444,0,0],84:[0,.69444,0,0],85:[0,.69444,0,0],86:[0,.69444,.01389,0],87:[0,.69444,.01389,0],88:[0,.69444,0,0],89:[0,.69444,.025,0],90:[0,.69444,0,0],91:[.25,.75,0,0],93:[.25,.75,0,0],94:[0,.69444,0,0],95:[.35,.09444,.02778,0],97:[0,.44444,0,0],98:[0,.69444,0,0],99:[0,.44444,0,0],100:[0,.69444,0,0],101:[0,.44444,0,0],102:[0,.69444,.06944,0],103:[.19444,.44444,.01389,0],104:[0,.69444,0,0],105:[0,.67937,0,0],106:[.19444,.67937,0,0],107:[0,.69444,0,0],108:[0,.69444,0,0],109:[0,.44444,0,0],110:[0,.44444,0,0],111:[0,.44444,0,0],112:[.19444,.44444,0,0],113:[.19444,.44444,0,0],114:[0,.44444,.01389,0],115:[0,.44444,0,0],116:[0,.57143,0,0],117:[0,.44444,0,0],118:[0,.44444,.01389,0],119:[0,.44444,.01389,0],120:[0,.44444,0,0],121:[.19444,.44444,.01389,0],122:[0,.44444,0,0],126:[.35,.32659,0,0],305:[0,.44444,0,0],567:[.19444,.44444,0,0],768:[0,.69444,0,0],769:[0,.69444,0,0],770:[0,.69444,0,0],771:[0,.67659,0,0],772:[0,.60889,0,0],774:[0,.69444,0,0],775:[0,.67937,0,0],776:[0,.67937,0,0],778:[0,.69444,0,0],779:[0,.69444,0,0],780:[0,.63194,0,0],915:[0,.69444,0,0],916:[0,.69444,0,0],920:[0,.69444,0,0],923:[0,.69444,0,0],926:[0,.69444,0,0],928:[0,.69444,0,0],931:[0,.69444,0,0],933:[0,.69444,0,0],934:[0,.69444,0,0],936:[0,.69444,0,0],937:[0,.69444,0,0],8211:[0,.44444,.02778,0],8212:[0,.44444,.02778,0],8216:[0,.69444,0,0],8217:[0,.69444,0,0],8220:[0,.69444,0,0],8221:[0,.69444,0,0]},"Script-Regular":{65:[0,.7,.22925,0],66:[0,.7,.04087,0],67:[0,.7,.1689,0],68:[0,.7,.09371,0],69:[0,.7,.18583,0],70:[0,.7,.13634,0],71:[0,.7,.17322,0],72:[0,.7,.29694,0],73:[0,.7,.19189,0],74:[.27778,.7,.19189,0],75:[0,.7,.31259,0],76:[0,.7,.19189,0],77:[0,.7,.15981,0],78:[0,.7,.3525,0],79:[0,.7,.08078,0],80:[0,.7,.08078,0],81:[0,.7,.03305,0],82:[0,.7,.06259,0],83:[0,.7,.19189,0],84:[0,.7,.29087,0],85:[0,.7,.25815,0],86:[0,.7,.27523,0],87:[0,.7,.27523,0],88:[0,.7,.26006,0],89:[0,.7,.2939,0],90:[0,.7,.24037,0]},"Size1-Regular":{40:[.35001,.85,0,0],41:[.35001,.85,0,0],47:[.35001,.85,0,0],91:[.35001,.85,0,0],92:[.35001,.85,0,0],93:[.35001,.85,0,0],123:[.35001,.85,0,0],125:[.35001,.85,0,0],710:[0,.72222,0,0],732:[0,.72222,0,0],770:[0,.72222,0,0],771:[0,.72222,0,0],8214:[-99e-5,.601,0,0],8593:[1e-5,.6,0,0],8595:[1e-5,.6,0,0],8657:[1e-5,.6,0,0],8659:[1e-5,.6,0,0],8719:[.25001,.75,0,0],8720:[.25001,.75,0,0],8721:[.25001,.75,0,0],8730:[.35001,.85,0,0],8739:[-.00599,.606,0,0],8741:[-.00599,.606,0,0],8747:[.30612,.805,.19445,0],8748:[.306,.805,.19445,0],8749:[.306,.805,.19445,0],8750:[.30612,.805,.19445,0],8896:[.25001,.75,0,0],8897:[.25001,.75,0,0],8898:[.25001,.75,0,0],8899:[.25001,.75,0,0],8968:[.35001,.85,0,0],8969:[.35001,.85,0,0],8970:[.35001,.85,0,0],8971:[.35001,.85,0,0],9168:[-99e-5,.601,0,0],10216:[.35001,.85,0,0],10217:[.35001,.85,0,0],10752:[.25001,.75,0,0],10753:[.25001,.75,0,0],10754:[.25001,.75,0,0],10756:[.25001,.75,0,0],10758:[.25001,.75,0,0]},"Size2-Regular":{40:[.65002,1.15,0,0],41:[.65002,1.15,0,0],47:[.65002,1.15,0,0],91:[.65002,1.15,0,0],92:[.65002,1.15,0,0],93:[.65002,1.15,0,0],123:[.65002,1.15,0,0],125:[.65002,1.15,0,0],710:[0,.75,0,0],732:[0,.75,0,0],770:[0,.75,0,0],771:[0,.75,0,0],8719:[.55001,1.05,0,0],8720:[.55001,1.05,0,0],8721:[.55001,1.05,0,0],8730:[.65002,1.15,0,0],8747:[.86225,1.36,.44445,0],8748:[.862,1.36,.44445,0],8749:[.862,1.36,.44445,0],8750:[.86225,1.36,.44445,0],8896:[.55001,1.05,0,0],8897:[.55001,1.05,0,0],8898:[.55001,1.05,0,0],8899:[.55001,1.05,0,0],8968:[.65002,1.15,0,0],8969:[.65002,1.15,0,0],8970:[.65002,1.15,0,0],8971:[.65002,1.15,0,0],10216:[.65002,1.15,0,0],10217:[.65002,1.15,0,0],10752:[.55001,1.05,0,0],10753:[.55001,1.05,0,0],10754:[.55001,1.05,0,0],10756:[.55001,1.05,0,0],10758:[.55001,1.05,0,0]},"Size3-Regular":{40:[.95003,1.45,0,0],41:[.95003,1.45,0,0],47:[.95003,1.45,0,0],91:[.95003,1.45,0,0],92:[.95003,1.45,0,0],93:[.95003,1.45,0,0],123:[.95003,1.45,0,0],125:[.95003,1.45,0,0],710:[0,.75,0,0],732:[0,.75,0,0],770:[0,.75,0,0],771:[0,.75,0,0],8730:[.95003,1.45,0,0],8968:[.95003,1.45,0,0],8969:[.95003,1.45,0,0],8970:[.95003,1.45,0,0],8971:[.95003,1.45,0,0],10216:[.95003,1.45,0,0],10217:[.95003,1.45,0,0]},"Size4-Regular":{40:[1.25003,1.75,0,0],41:[1.25003,1.75,0,0],47:[1.25003,1.75,0,0],91:[1.25003,1.75,0,0],92:[1.25003,1.75,0,0],93:[1.25003,1.75,0,0],123:[1.25003,1.75,0,0],125:[1.25003,1.75,0,0],710:[0,.825,0,0],732:[0,.825,0,0],770:[0,.825,0,0],771:[0,.825,0,0],8730:[1.25003,1.75,0,0],8968:[1.25003,1.75,0,0],8969:[1.25003,1.75,0,0],8970:[1.25003,1.75,0,0],8971:[1.25003,1.75,0,0],9115:[.64502,1.155,0,0],9116:[1e-5,.6,0,0],9117:[.64502,1.155,0,0],9118:[.64502,1.155,0,0],9119:[1e-5,.6,0,0],9120:[.64502,1.155,0,0],9121:[.64502,1.155,0,0],9122:[-99e-5,.601,0,0],9123:[.64502,1.155,0,0],9124:[.64502,1.155,0,0],9125:[-99e-5,.601,0,0],9126:[.64502,1.155,0,0],9127:[1e-5,.9,0,0],9128:[.65002,1.15,0,0],9129:[.90001,0,0,0],9130:[0,.3,0,0],9131:[1e-5,.9,0,0],9132:[.65002,1.15,0,0],9133:[.90001,0,0,0],9143:[.88502,.915,0,0],10216:[1.25003,1.75,0,0],10217:[1.25003,1.75,0,0],57344:[-.00499,.605,0,0],57345:[-.00499,.605,0,0],57680:[0,.12,0,0],57681:[0,.12,0,0],57682:[0,.12,0,0],57683:[0,.12,0,0]},"Typewriter-Regular":{33:[0,.61111,0,0],34:[0,.61111,0,0],35:[0,.61111,0,0],36:[.08333,.69444,0,0],37:[.08333,.69444,0,0],38:[0,.61111,0,0],39:[0,.61111,0,0],40:[.08333,.69444,0,0],41:[.08333,.69444,0,0],42:[0,.52083,0,0],43:[-.08056,.53055,0,0],44:[.13889,.125,0,0],45:[-.08056,.53055,0,0],46:[0,.125,0,0],47:[.08333,.69444,0,0],48:[0,.61111,0,0],49:[0,.61111,0,0],50:[0,.61111,0,0],51:[0,.61111,0,0],52:[0,.61111,0,0],53:[0,.61111,0,0],54:[0,.61111,0,0],55:[0,.61111,0,0],56:[0,.61111,0,0],57:[0,.61111,0,0],58:[0,.43056,0,0],59:[.13889,.43056,0,0],60:[-.05556,.55556,0,0],61:[-.19549,.41562,0,0],62:[-.05556,.55556,0,0],63:[0,.61111,0,0],64:[0,.61111,0,0],65:[0,.61111,0,0],66:[0,.61111,0,0],67:[0,.61111,0,0],68:[0,.61111,0,0],69:[0,.61111,0,0],70:[0,.61111,0,0],71:[0,.61111,0,0],72:[0,.61111,0,0],73:[0,.61111,0,0],74:[0,.61111,0,0],75:[0,.61111,0,0],76:[0,.61111,0,0],77:[0,.61111,0,0],78:[0,.61111,0,0],79:[0,.61111,0,0],80:[0,.61111,0,0],81:[.13889,.61111,0,0],82:[0,.61111,0,0],83:[0,.61111,0,0],84:[0,.61111,0,0],85:[0,.61111,0,0],86:[0,.61111,0,0],87:[0,.61111,0,0],88:[0,.61111,0,0],89:[0,.61111,0,0],90:[0,.61111,0,0],91:[.08333,.69444,0,0],92:[.08333,.69444,0,0],93:[.08333,.69444,0,0],94:[0,.61111,0,0],95:[.09514,0,0,0],96:[0,.61111,0,0],97:[0,.43056,0,0],98:[0,.61111,0,0],99:[0,.43056,0,0],100:[0,.61111,0,0],101:[0,.43056,0,0],102:[0,.61111,0,0],103:[.22222,.43056,0,0],104:[0,.61111,0,0],105:[0,.61111,0,0],106:[.22222,.61111,0,0],107:[0,.61111,0,0],108:[0,.61111,0,0],109:[0,.43056,0,0],110:[0,.43056,0,0],111:[0,.43056,0,0],112:[.22222,.43056,0,0],113:[.22222,.43056,0,0],114:[0,.43056,0,0],115:[0,.43056,0,0],116:[0,.55358,0,0],117:[0,.43056,0,0],118:[0,.43056,0,0],119:[0,.43056,0,0],120:[0,.43056,0,0],121:[.22222,.43056,0,0],122:[0,.43056,0,0],123:[.08333,.69444,0,0],124:[.08333,.69444,0,0],125:[.08333,.69444,0,0],126:[0,.61111,0,0],127:[0,.61111,0,0],305:[0,.43056,0,0],567:[.22222,.43056,0,0],768:[0,.61111,0,0],769:[0,.61111,0,0],770:[0,.61111,0,0],771:[0,.61111,0,0],772:[0,.56555,0,0],774:[0,.61111,0,0],776:[0,.61111,0,0],778:[0,.61111,0,0],780:[0,.56597,0,0],915:[0,.61111,0,0],916:[0,.61111,0,0],920:[0,.61111,0,0],923:[0,.61111,0,0],926:[0,.61111,0,0],928:[0,.61111,0,0],931:[0,.61111,0,0],933:[0,.61111,0,0],934:[0,.61111,0,0],936:[0,.61111,0,0],937:[0,.61111,0,0],2018:[0,.61111,0,0],2019:[0,.61111,0,0],8242:[0,.61111,0,0]}}},{}],43:[function(e,t){function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,n,r){"string"==typeof e&&(e=[e]),"number"==typeof n&&(n={numArgs:n});for(var i={numArgs:n.numArgs,argTypes:n.argTypes,greediness:n.greediness===undefined?1:n.greediness,allowedInText:!!n.allowedInText,allowedInMath:n.allowedInMath,numOptionalArgs:n.numOptionalArgs||0,infix:!!n.infix,handler:r},a=0;a","\\langle","\\rangle","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\\lmoustache","\\rmoustache","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."],c={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak"};r(["\\blue","\\orange","\\pink","\\red","\\green","\\gray","\\purple","\\blueA","\\blueB","\\blueC","\\blueD","\\blueE","\\tealA","\\tealB","\\tealC","\\tealD","\\tealE","\\greenA","\\greenB","\\greenC","\\greenD","\\greenE","\\goldA","\\goldB","\\goldC","\\goldD","\\goldE","\\redA","\\redB","\\redC","\\redD","\\redE","\\maroonA","\\maroonB","\\maroonC","\\maroonD","\\maroonE","\\purpleA","\\purpleB","\\purpleC","\\purpleD","\\purpleE","\\mintA","\\mintB","\\mintC","\\grayA","\\grayB","\\grayC","\\grayD","\\grayE","\\grayF","\\grayG","\\grayH","\\grayI","\\kaBlue","\\kaGreen"],{numArgs:1,allowedInText:!0,greediness:3},function(e,t){var n=t[0];return{type:"color",color:"katex-"+e.funcName.slice(1),value:s(n)}}),r(["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],{numArgs:0},function(e){return{type:"op",limits:!1,symbol:!1,body:e.funcName}}),r(["\\det","\\gcd","\\inf","\\lim","\\liminf","\\limsup","\\max","\\min","\\Pr","\\sup"],{numArgs:0},function(e){return{type:"op",limits:!0,symbol:!1,body:e.funcName}}),r(["\\int","\\iint","\\iiint","\\oint"],{numArgs:0},function(e){return{type:"op",limits:!1,symbol:!0,body:e.funcName}}),r(["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint"],{numArgs:0},function(e){return{type:"op",limits:!0,symbol:!0,body:e.funcName}}),r("\\mathop",{numArgs:1},function(e,t){var n=t[0];return{type:"op",limits:!1,symbol:!1,value:s(n)}}),r(["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac"],{numArgs:2,greediness:2},function(e,t){var n=t[0],r=t[1],i=void 0,a=null,o=null,s="auto";switch(e.funcName){case"\\dfrac":case"\\frac":case"\\tfrac":i=!0;break;case"\\\\atopfrac":i=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":i=!1,a="(",o=")";break;default:throw new Error("Unrecognized genfrac command")}switch(e.funcName){case"\\dfrac":case"\\dbinom":s="display";break;case"\\tfrac":case"\\tbinom":s="text"}return{type:"genfrac",numer:n,denom:r,hasBarLine:i,leftDelim:a,rightDelim:o,size:s}}),r(["\\llap","\\rlap"],{numArgs:1,allowedInText:!0},function(e,t){var n=t[0];return{type:e.funcName.slice(1),body:n}});var h=function(e,t){if(i["default"].contains(d,e.value))return e;throw new a["default"]("Invalid delimiter: '"+e.value+"' after '"+t.funcName+"'",e)};r(["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],{numArgs:1},function(e,t){var n=h(t[0],e);return{type:"delimsizing",size:u[e.funcName].size,mclass:u[e.funcName].mclass,value:n.value}}),r(["\\left","\\right"],{numArgs:1},function(e,t){return{type:"leftright",value:h(t[0],e).value}}),r("\\middle",{numArgs:1},function(e,t){var n=h(t[0],e);if(!e.parser.leftrightDepth)throw new a["default"]("\\middle without preceding \\left",n);return{type:"middle",value:n.value}}),r(["\\tiny","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],0,null),r(["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],0,null),r(["\\rm","\\sf","\\tt","\\bf","\\it"],0,null),r(["\\mathrm","\\mathit","\\mathbf","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],{numArgs:1,greediness:2},function(e,t){var n=t[0],r=e.funcName;return r in c&&(r=c[r]),{type:"font",font:r.slice(1),body:n}}),r(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],{numArgs:1},function(e,t){var n=t[0],r=!i["default"].contains(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot"],e.funcName),a=!r||i["default"].contains(["\\widehat","\\widetilde"],e.funcName);return{type:"accent",label:e.funcName,isStretchy:r,isShifty:a,value:s(n),base:n}}),r(["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\r","\\H","\\v"],{numArgs:1,allowedInText:!0,allowedInMath:!1},function(e,t){var n=t[0];return{type:"accent",label:e.funcName,isStretchy:!1,isShifty:!0,value:s(n),base:n}}),r(["\\overbrace","\\underbrace"],{numArgs:1},function(e,t){var n=t[0];return{type:"horizBrace",label:e.funcName,isOver:/^\\over/.test(e.funcName),base:n}}),r(["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\undertilde"],{numArgs:1},function(e,t){var n=t[0];return{type:"accentUnder",label:e.funcName,value:s(n),body:n}}),r(["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xLongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xLongequal","\\xtofrom"],{numArgs:1,numOptionalArgs:1},function(e,t){var n=t[0],r=t[1];return{type:"xArrow",label:e.funcName,body:r,below:n}}),r(["\\cancel","\\bcancel","\\xcancel","\\sout","\\fbox"],{numArgs:1},function(e,t){var n=t[0];return{type:"enclose",label:e.funcName,body:n}}),r(["\\over","\\choose","\\atop"],{numArgs:0,infix:!0},function(e){var t=void 0;switch(e.funcName){case"\\over":t="\\frac";break;case"\\choose":t="\\binom";break;case"\\atop":t="\\\\atopfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",replaceWith:t,token:e.token}}),r(["\\\\","\\cr"],{numArgs:0,numOptionalArgs:1,argTypes:["size"]},function(e,t){return{type:"cr",size:t[0]}}),r(["\\begin","\\end"],{numArgs:1,argTypes:["text"]},function(e,t){var n=t[0];if("ordgroup"!==n.type)throw new a["default"]("Invalid environment name",n);for(var r="",i=0;i"}}]),e}(),s=function(){function e(t){(0,r["default"])(this,e),this.text=t}return(0,i["default"])(e,[{key:"toNode",value:function(){return document.createTextNode(this.text)}},{key:"toMarkup",value:function(){return a["default"].escape(this.text)}}]),e}();t.exports={MathNode:o,TextNode:s}},{"./utils":51,"babel-runtime/helpers/classCallCheck":4,"babel-runtime/helpers/createClass":5}],46:[function(e,t){function n(e){return e&&e.__esModule?e:{"default":e}}var r=n(e("./Parser")),i=function(e,t){if(!("string"==typeof e||e instanceof String))throw new TypeError("KaTeX can only parse string typed expression");return new r["default"](e,t).parse()};t.exports=i},{"./Parser":31}],47:[function(e,t){var n=e("./buildCommon"),r=e("./mathMLTree"),i=e("./utils"),a={widehat:"^",widetilde:"~",undertilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23b5",overbrace:"\u23de",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21d2",xRightarrow:"\u21d2",overleftharpoon:"\u21bc",xleftharpoonup:"\u21bc",overrightharpoon:"\u21c0",xrightharpoonup:"\u21c0",xLeftarrow:"\u21d0",xLeftrightarrow:"\u21d4",xhookleftarrow:"\u21a9",xhookrightarrow:"\u21aa",xmapsto:"\u21a6",xrightharpoondown:"\u21c1",xleftharpoondown:"\u21bd",xrightleftharpoons:"\u21cc",xleftrightharpoons:"\u21cb",xtwoheadleftarrow:"\u219e",xtwoheadrightarrow:"\u21a0",xLongequal:"=",xtofrom:"\u21c4"},o=function(e){var t=new r.MathNode("mo",[new r.TextNode(a[e.substr(1)])]);return t.setAttribute("stretchy","true"),t},s={overleftarrow:[.522,0,"leftarrow",.5],underleftarrow:[.522,0,"leftarrow",.5],xleftarrow:[.261,.261,"leftarrow",.783],overrightarrow:[.522,0,"rightarrow",.5],underrightarrow:[.522,0,"rightarrow",.5],xrightarrow:[.261,.261,"rightarrow",.783],overbrace:[.548,0,"overbrace",1.6],underbrace:[.548,0,"underbrace",1.6],overleftrightarrow:[.522,0,"leftrightarrow",.5],underleftrightarrow:[.522,0,"leftrightarrow",.5],xleftrightarrow:[.261,.261,"leftrightarrow",.783],Overrightarrow:[.56,0,"doublerightarrow",.5],xLeftarrow:[.28,.28,"doubleleftarrow",.783],xRightarrow:[.28,.28,"doublerightarrow",.783],xLeftrightarrow:[.28,.28,"doubleleftrightarrow",.955],overleftharpoon:[.522,0,"leftharpoon",.5],overrightharpoon:[.522,0,"rightharpoon",.5],xleftharpoonup:[.261,.261,"leftharpoon",.783],xrightharpoonup:[.261,.261,"rightharpoon",.783],xhookleftarrow:[.261,.261,"hookleftarrow",.87],xhookrightarrow:[.261,.261,"hookrightarrow",.87],overlinesegment:[.414,0,"linesegment",.5],underlinesegment:[.414,0,"linesegment",.5],xmapsto:[.261,.261,"mapsto",.783],xrightharpoondown:[.261,.261,"rightharpoondown",.783],xleftharpoondown:[.261,.261,"leftharpoondown",.783],xrightleftharpoons:[.358,.358,"rightleftharpoons",.716],xleftrightharpoons:[.358,.358,"leftrightharpoons",.716],overgroup:[.342,0,"overgroup",.87],undergroup:[.342,0,"undergroup",.87],xtwoheadleftarrow:[.167,.167,"twoheadleftarrow",.86],xtwoheadrightarrow:[.167,.167,"twoheadrightarrow",.86],xLongequal:[.167,.167,"longequal",.5],xtofrom:[.264,.264,"tofrom",.86]},l={doubleleftarrow:"",doublerightarrow:"",leftarrow:"",rightarrow:""},u={bcancel:"",cancel:"",doubleleftarrow:">"+l.doubleleftarrow+"",doubleleftrightarrow:">"+l.doubleleftarrow+"\n"+l.doublerightarrow+"",doublerightarrow:">"+l.doublerightarrow+"",hookleftarrow:">"+l.leftarrow+"\n",hookrightarrow:">"+l.rightarrow+"",leftarrow:">"+l.leftarrow+"",leftharpoon:">",leftharpoondown:">",leftrightarrow:">"+l.leftarrow+"\n"+l.rightarrow+"",leftrightharpoons:">\n",linesegment:">\n",longequal:" viewBox='0 0 100 334' preserveAspectRatio='none'>\n",mapsto:">"+l.rightarrow+"",overbrace:">\n",overgroup:">",rightarrow:">"+l.rightarrow+"",rightharpoon:">",rightharpoondown:">",rightleftharpoons:">",tilde1:" viewBox='0 0 600 260' preserveAspectRatio='none'>\n",tilde2:" viewBox='0 0 1033 286' preserveAspectRatio='none'>\n",tilde3:" viewBox='0 0 2339 306' preserveAspectRatio='none'>\n",tilde4:" viewBox='0 0 2340 312' preserveAspectRatio='none'>\n",tofrom:">",twoheadleftarrow:">\n",twoheadrightarrow:">\n",underbrace:">\n",undergroup:">",widehat1:" viewBox='0 0 1062 239' preserveAspectRatio='none'>\n",widehat2:" viewBox='0 0 2364 300' preserveAspectRatio='none'>\n",widehat3:" viewBox='0 0 2364 360' preserveAspectRatio='none'>\n",widehat4:" viewBox='0 0 2364 420' preserveAspectRatio='none'>\n",xcancel:"\n"},d=function(e,t){var r=e.value.label.substr(1),a=0,o=0,l="",d=0;if(i.contains(["widehat","widetilde","undertilde"],r)){var c=e.value.value.length;if(c>5)a=.312,l=("widehat"===r?"widehat":"tilde")+"4";else{var h=[1,1,2,2,3,3][c];"widehat"===r?(a=[0,.24,.3,.3,.36,.36][c],l="widehat"+h):(a=[0,.26,.3,.3,.34,.34][c],l="tilde"+h)}}else{var p=s[r];a=p[0],o=p[1],l=p[2],d=p[3]}var f=n.makeSpan([],[],t);f.height=a,f.depth=o;var m=a+o;return f.style.height=m+"em",d>0&&(f.style.minWidth=d+"em"),f.innerHTML="",f},c=function(e,t,r,i){var a=void 0,o=e.height+e.depth+2*r;return"fbox"===t?(a=n.makeSpan(["stretchy",t],[],i),i.color&&(a.style.borderColor=i.getColor())):(a=n.makeSpan([],[],i)).innerHTML=""+u[t]+"",a.height=o,a.style.height=o+"em",a};t.exports={encloseSpan:c,mathMLnode:o,svgSpan:d}},{"./buildCommon":34,"./mathMLTree":45,"./utils":51}],48:[function(e,t){function n(e,n,r,i,a,o){t.exports[e][a]={font:n,group:r,replace:i},o&&(t.exports[e][i]=t.exports[e][a])}t.exports={math:{},text:{}};var r="math",i="text",a="main",o="ams",s="accent",l="bin",u="close",d="inner",c="mathord",h="op",p="open",f="punct",m="rel",g="spacing",v="textord";n(r,a,m,"\u2261","\\equiv"),n(r,a,m,"\u227a","\\prec"),n(r,a,m,"\u227b","\\succ"),n(r,a,m,"\u223c","\\sim"),n(r,a,m,"\u22a5","\\perp"),n(r,a,m,"\u2aaf","\\preceq"),n(r,a,m,"\u2ab0","\\succeq"),n(r,a,m,"\u2243","\\simeq"),n(r,a,m,"\u2223","\\mid"),n(r,a,m,"\u226a","\\ll"),n(r,a,m,"\u226b","\\gg"),n(r,a,m,"\u224d","\\asymp"),n(r,a,m,"\u2225","\\parallel"),n(r,a,m,"\u22c8","\\bowtie"),n(r,a,m,"\u2323","\\smile"),n(r,a,m,"\u2291","\\sqsubseteq"),n(r,a,m,"\u2292","\\sqsupseteq"),n(r,a,m,"\u2250","\\doteq"),n(r,a,m,"\u2322","\\frown"),n(r,a,m,"\u220b","\\ni"),n(r,a,m,"\u221d","\\propto"),n(r,a,m,"\u22a2","\\vdash"),n(r,a,m,"\u22a3","\\dashv"), +n(r,a,m,"\u220b","\\owns"),n(r,a,f,".","\\ldotp"),n(r,a,f,"\u22c5","\\cdotp"),n(r,a,v,"#","\\#"),n(i,a,v,"#","\\#"),n(r,a,v,"&","\\&"),n(i,a,v,"&","\\&"),n(r,a,v,"\u2135","\\aleph"),n(r,a,v,"\u2200","\\forall"),n(r,a,v,"\u210f","\\hbar"),n(r,a,v,"\u2203","\\exists"),n(r,a,v,"\u2207","\\nabla"),n(r,a,v,"\u266d","\\flat"),n(r,a,v,"\u2113","\\ell"),n(r,a,v,"\u266e","\\natural"),n(r,a,v,"\u2663","\\clubsuit"),n(r,a,v,"\u2118","\\wp"),n(r,a,v,"\u266f","\\sharp"),n(r,a,v,"\u2662","\\diamondsuit"),n(r,a,v,"\u211c","\\Re"),n(r,a,v,"\u2661","\\heartsuit"),n(r,a,v,"\u2111","\\Im"),n(r,a,v,"\u2660","\\spadesuit"),n(r,a,v,"\u2020","\\dag"),n(i,a,v,"\u2020","\\dag"),n(i,a,v,"\u2020","\\textdagger"),n(r,a,v,"\u2021","\\ddag"),n(i,a,v,"\u2021","\\ddag"),n(i,a,v,"\u2020","\\textdaggerdbl"),n(r,a,u,"\u23b1","\\rmoustache"),n(r,a,p,"\u23b0","\\lmoustache"),n(r,a,u,"\u27ef","\\rgroup"),n(r,a,p,"\u27ee","\\lgroup"),n(r,a,l,"\u2213","\\mp"),n(r,a,l,"\u2296","\\ominus"),n(r,a,l,"\u228e","\\uplus"),n(r,a,l,"\u2293","\\sqcap"),n(r,a,l,"\u2217","\\ast"),n(r,a,l,"\u2294","\\sqcup"),n(r,a,l,"\u25ef","\\bigcirc"),n(r,a,l,"\u2219","\\bullet"),n(r,a,l,"\u2021","\\ddagger"),n(r,a,l,"\u2240","\\wr"),n(r,a,l,"\u2a3f","\\amalg"),n(r,a,m,"\u27f5","\\longleftarrow"),n(r,a,m,"\u21d0","\\Leftarrow"),n(r,a,m,"\u27f8","\\Longleftarrow"),n(r,a,m,"\u27f6","\\longrightarrow"),n(r,a,m,"\u21d2","\\Rightarrow"),n(r,a,m,"\u27f9","\\Longrightarrow"),n(r,a,m,"\u2194","\\leftrightarrow"),n(r,a,m,"\u27f7","\\longleftrightarrow"),n(r,a,m,"\u21d4","\\Leftrightarrow"),n(r,a,m,"\u27fa","\\Longleftrightarrow"),n(r,a,m,"\u21a6","\\mapsto"),n(r,a,m,"\u27fc","\\longmapsto"),n(r,a,m,"\u2197","\\nearrow"),n(r,a,m,"\u21a9","\\hookleftarrow"),n(r,a,m,"\u21aa","\\hookrightarrow"),n(r,a,m,"\u2198","\\searrow"),n(r,a,m,"\u21bc","\\leftharpoonup"),n(r,a,m,"\u21c0","\\rightharpoonup"),n(r,a,m,"\u2199","\\swarrow"),n(r,a,m,"\u21bd","\\leftharpoondown"),n(r,a,m,"\u21c1","\\rightharpoondown"),n(r,a,m,"\u2196","\\nwarrow"),n(r,a,m,"\u21cc","\\rightleftharpoons"),n(r,o,m,"\u226e","\\nless"),n(r,o,m,"\ue010","\\nleqslant"),n(r,o,m,"\ue011","\\nleqq"),n(r,o,m,"\u2a87","\\lneq"),n(r,o,m,"\u2268","\\lneqq"),n(r,o,m,"\ue00c","\\lvertneqq"),n(r,o,m,"\u22e6","\\lnsim"),n(r,o,m,"\u2a89","\\lnapprox"),n(r,o,m,"\u2280","\\nprec"),n(r,o,m,"\u22e0","\\npreceq"),n(r,o,m,"\u22e8","\\precnsim"),n(r,o,m,"\u2ab9","\\precnapprox"),n(r,o,m,"\u2241","\\nsim"),n(r,o,m,"\ue006","\\nshortmid"),n(r,o,m,"\u2224","\\nmid"),n(r,o,m,"\u22ac","\\nvdash"),n(r,o,m,"\u22ad","\\nvDash"),n(r,o,m,"\u22ea","\\ntriangleleft"),n(r,o,m,"\u22ec","\\ntrianglelefteq"),n(r,o,m,"\u228a","\\subsetneq"),n(r,o,m,"\ue01a","\\varsubsetneq"),n(r,o,m,"\u2acb","\\subsetneqq"),n(r,o,m,"\ue017","\\varsubsetneqq"),n(r,o,m,"\u226f","\\ngtr"),n(r,o,m,"\ue00f","\\ngeqslant"),n(r,o,m,"\ue00e","\\ngeqq"),n(r,o,m,"\u2a88","\\gneq"),n(r,o,m,"\u2269","\\gneqq"),n(r,o,m,"\ue00d","\\gvertneqq"),n(r,o,m,"\u22e7","\\gnsim"),n(r,o,m,"\u2a8a","\\gnapprox"),n(r,o,m,"\u2281","\\nsucc"),n(r,o,m,"\u22e1","\\nsucceq"),n(r,o,m,"\u22e9","\\succnsim"),n(r,o,m,"\u2aba","\\succnapprox"),n(r,o,m,"\u2246","\\ncong"),n(r,o,m,"\ue007","\\nshortparallel"),n(r,o,m,"\u2226","\\nparallel"),n(r,o,m,"\u22af","\\nVDash"),n(r,o,m,"\u22eb","\\ntriangleright"),n(r,o,m,"\u22ed","\\ntrianglerighteq"),n(r,o,m,"\ue018","\\nsupseteqq"),n(r,o,m,"\u228b","\\supsetneq"),n(r,o,m,"\ue01b","\\varsupsetneq"),n(r,o,m,"\u2acc","\\supsetneqq"),n(r,o,m,"\ue019","\\varsupsetneqq"),n(r,o,m,"\u22ae","\\nVdash"),n(r,o,m,"\u2ab5","\\precneqq"),n(r,o,m,"\u2ab6","\\succneqq"),n(r,o,m,"\ue016","\\nsubseteqq"),n(r,o,l,"\u22b4","\\unlhd"),n(r,o,l,"\u22b5","\\unrhd"),n(r,o,m,"\u219a","\\nleftarrow"),n(r,o,m,"\u219b","\\nrightarrow"),n(r,o,m,"\u21cd","\\nLeftarrow"),n(r,o,m,"\u21cf","\\nRightarrow"),n(r,o,m,"\u21ae","\\nleftrightarrow"),n(r,o,m,"\u21ce","\\nLeftrightarrow"),n(r,o,m,"\u25b3","\\vartriangle"),n(r,o,v,"\u210f","\\hslash"),n(r,o,v,"\u25bd","\\triangledown"),n(r,o,v,"\u25ca","\\lozenge"),n(r,o,v,"\u24c8","\\circledS"),n(r,o,v,"\xae","\\circledR"),n(i,o,v,"\xae","\\circledR"),n(r,o,v,"\u2221","\\measuredangle"),n(r,o,v,"\u2204","\\nexists"),n(r,o,v,"\u2127","\\mho"),n(r,o,v,"\u2132","\\Finv"),n(r,o,v,"\u2141","\\Game"),n(r,o,v,"k","\\Bbbk"),n(r,o,v,"\u2035","\\backprime"),n(r,o,v,"\u25b2","\\blacktriangle"),n(r,o,v,"\u25bc","\\blacktriangledown"),n(r,o,v,"\u25a0","\\blacksquare"),n(r,o,v,"\u29eb","\\blacklozenge"),n(r,o,v,"\u2605","\\bigstar"),n(r,o,v,"\u2222","\\sphericalangle"),n(r,o,v,"\u2201","\\complement"),n(r,o,v,"\xf0","\\eth"),n(r,o,v,"\u2571","\\diagup"),n(r,o,v,"\u2572","\\diagdown"),n(r,o,v,"\u25a1","\\square"),n(r,o,v,"\u25a1","\\Box"),n(r,o,v,"\u25ca","\\Diamond"),n(r,o,v,"\xa5","\\yen"),n(r,o,v,"\u2713","\\checkmark"),n(i,o,v,"\u2713","\\checkmark"),n(r,o,v,"\u2136","\\beth"),n(r,o,v,"\u2138","\\daleth"),n(r,o,v,"\u2137","\\gimel"),n(r,o,v,"\u03dd","\\digamma"),n(r,o,v,"\u03f0","\\varkappa"),n(r,o,p,"\u250c","\\ulcorner"),n(r,o,u,"\u2510","\\urcorner"),n(r,o,p,"\u2514","\\llcorner"),n(r,o,u,"\u2518","\\lrcorner"),n(r,o,m,"\u2266","\\leqq"),n(r,o,m,"\u2a7d","\\leqslant"),n(r,o,m,"\u2a95","\\eqslantless"),n(r,o,m,"\u2272","\\lesssim"),n(r,o,m,"\u2a85","\\lessapprox"),n(r,o,m,"\u224a","\\approxeq"),n(r,o,l,"\u22d6","\\lessdot"),n(r,o,m,"\u22d8","\\lll"),n(r,o,m,"\u2276","\\lessgtr"),n(r,o,m,"\u22da","\\lesseqgtr"),n(r,o,m,"\u2a8b","\\lesseqqgtr"),n(r,o,m,"\u2251","\\doteqdot"),n(r,o,m,"\u2253","\\risingdotseq"),n(r,o,m,"\u2252","\\fallingdotseq"),n(r,o,m,"\u223d","\\backsim"),n(r,o,m,"\u22cd","\\backsimeq"),n(r,o,m,"\u2ac5","\\subseteqq"),n(r,o,m,"\u22d0","\\Subset"),n(r,o,m,"\u228f","\\sqsubset"),n(r,o,m,"\u227c","\\preccurlyeq"),n(r,o,m,"\u22de","\\curlyeqprec"),n(r,o,m,"\u227e","\\precsim"),n(r,o,m,"\u2ab7","\\precapprox"),n(r,o,m,"\u22b2","\\vartriangleleft"),n(r,o,m,"\u22b4","\\trianglelefteq"),n(r,o,m,"\u22a8","\\vDash"),n(r,o,m,"\u22aa","\\Vvdash"),n(r,o,m,"\u2323","\\smallsmile"),n(r,o,m,"\u2322","\\smallfrown"),n(r,o,m,"\u224f","\\bumpeq"),n(r,o,m,"\u224e","\\Bumpeq"),n(r,o,m,"\u2267","\\geqq"),n(r,o,m,"\u2a7e","\\geqslant"),n(r,o,m,"\u2a96","\\eqslantgtr"),n(r,o,m,"\u2273","\\gtrsim"),n(r,o,m,"\u2a86","\\gtrapprox"),n(r,o,l,"\u22d7","\\gtrdot"),n(r,o,m,"\u22d9","\\ggg"),n(r,o,m,"\u2277","\\gtrless"),n(r,o,m,"\u22db","\\gtreqless"),n(r,o,m,"\u2a8c","\\gtreqqless"),n(r,o,m,"\u2256","\\eqcirc"),n(r,o,m,"\u2257","\\circeq"),n(r,o,m,"\u225c","\\triangleq"),n(r,o,m,"\u223c","\\thicksim"),n(r,o,m,"\u2248","\\thickapprox"),n(r,o,m,"\u2ac6","\\supseteqq"),n(r,o,m,"\u22d1","\\Supset"),n(r,o,m,"\u2290","\\sqsupset"),n(r,o,m,"\u227d","\\succcurlyeq"),n(r,o,m,"\u22df","\\curlyeqsucc"),n(r,o,m,"\u227f","\\succsim"),n(r,o,m,"\u2ab8","\\succapprox"),n(r,o,m,"\u22b3","\\vartriangleright"),n(r,o,m,"\u22b5","\\trianglerighteq"),n(r,o,m,"\u22a9","\\Vdash"),n(r,o,m,"\u2223","\\shortmid"),n(r,o,m,"\u2225","\\shortparallel"),n(r,o,m,"\u226c","\\between"),n(r,o,m,"\u22d4","\\pitchfork"),n(r,o,m,"\u221d","\\varpropto"),n(r,o,m,"\u25c0","\\blacktriangleleft"),n(r,o,m,"\u2234","\\therefore"),n(r,o,m,"\u220d","\\backepsilon"),n(r,o,m,"\u25b6","\\blacktriangleright"),n(r,o,m,"\u2235","\\because"),n(r,o,m,"\u22d8","\\llless"),n(r,o,m,"\u22d9","\\gggtr"),n(r,o,l,"\u22b2","\\lhd"),n(r,o,l,"\u22b3","\\rhd"),n(r,o,m,"\u2242","\\eqsim"),n(r,a,m,"\u22c8","\\Join"),n(r,o,m,"\u2251","\\Doteq"),n(r,o,l,"\u2214","\\dotplus"),n(r,o,l,"\u2216","\\smallsetminus"),n(r,o,l,"\u22d2","\\Cap"),n(r,o,l,"\u22d3","\\Cup"),n(r,o,l,"\u2a5e","\\doublebarwedge"),n(r,o,l,"\u229f","\\boxminus"),n(r,o,l,"\u229e","\\boxplus"),n(r,o,l,"\u22c7","\\divideontimes"),n(r,o,l,"\u22c9","\\ltimes"),n(r,o,l,"\u22ca","\\rtimes"),n(r,o,l,"\u22cb","\\leftthreetimes"),n(r,o,l,"\u22cc","\\rightthreetimes"),n(r,o,l,"\u22cf","\\curlywedge"),n(r,o,l,"\u22ce","\\curlyvee"),n(r,o,l,"\u229d","\\circleddash"),n(r,o,l,"\u229b","\\circledast"),n(r,o,l,"\u22c5","\\centerdot"),n(r,o,l,"\u22ba","\\intercal"),n(r,o,l,"\u22d2","\\doublecap"),n(r,o,l,"\u22d3","\\doublecup"),n(r,o,l,"\u22a0","\\boxtimes"),n(r,o,m,"\u21e2","\\dashrightarrow"),n(r,o,m,"\u21e0","\\dashleftarrow"),n(r,o,m,"\u21c7","\\leftleftarrows"),n(r,o,m,"\u21c6","\\leftrightarrows"),n(r,o,m,"\u21da","\\Lleftarrow"),n(r,o,m,"\u219e","\\twoheadleftarrow"),n(r,o,m,"\u21a2","\\leftarrowtail"),n(r,o,m,"\u21ab","\\looparrowleft"),n(r,o,m,"\u21cb","\\leftrightharpoons"),n(r,o,m,"\u21b6","\\curvearrowleft"),n(r,o,m,"\u21ba","\\circlearrowleft"),n(r,o,m,"\u21b0","\\Lsh"),n(r,o,m,"\u21c8","\\upuparrows"),n(r,o,m,"\u21bf","\\upharpoonleft"),n(r,o,m,"\u21c3","\\downharpoonleft"),n(r,o,m,"\u22b8","\\multimap"),n(r,o,m,"\u21ad","\\leftrightsquigarrow"),n(r,o,m,"\u21c9","\\rightrightarrows"),n(r,o,m,"\u21c4","\\rightleftarrows"),n(r,o,m,"\u21a0","\\twoheadrightarrow"),n(r,o,m,"\u21a3","\\rightarrowtail"),n(r,o,m,"\u21ac","\\looparrowright"),n(r,o,m,"\u21b7","\\curvearrowright"),n(r,o,m,"\u21bb","\\circlearrowright"),n(r,o,m,"\u21b1","\\Rsh"),n(r,o,m,"\u21ca","\\downdownarrows"),n(r,o,m,"\u21be","\\upharpoonright"),n(r,o,m,"\u21c2","\\downharpoonright"),n(r,o,m,"\u21dd","\\rightsquigarrow"),n(r,o,m,"\u21dd","\\leadsto"),n(r,o,m,"\u21db","\\Rrightarrow"),n(r,o,m,"\u21be","\\restriction"),n(r,a,v,"\u2018","`"),n(r,a,v,"$","\\$"),n(i,a,v,"$","\\$"),n(i,a,v,"$","\\textdollar"),n(r,a,v,"%","\\%"),n(i,a,v,"%","\\%"),n(r,a,v,"_","\\_"),n(i,a,v,"_","\\_"),n(i,a,v,"_","\\textunderscore"),n(r,a,v,"\u2220","\\angle"),n(r,a,v,"\u221e","\\infty"),n(r,a,v,"\u2032","\\prime"),n(r,a,v,"\u25b3","\\triangle"),n(r,a,v,"\u0393","\\Gamma",!0),n(r,a,v,"\u0394","\\Delta",!0),n(r,a,v,"\u0398","\\Theta",!0),n(r,a,v,"\u039b","\\Lambda",!0),n(r,a,v,"\u039e","\\Xi",!0),n(r,a,v,"\u03a0","\\Pi",!0),n(r,a,v,"\u03a3","\\Sigma",!0),n(r,a,v,"\u03a5","\\Upsilon",!0),n(r,a,v,"\u03a6","\\Phi",!0),n(r,a,v,"\u03a8","\\Psi",!0),n(r,a,v,"\u03a9","\\Omega",!0),n(r,a,v,"\xac","\\neg"),n(r,a,v,"\xac","\\lnot"),n(r,a,v,"\u22a4","\\top"),n(r,a,v,"\u22a5","\\bot"),n(r,a,v,"\u2205","\\emptyset"),n(r,o,v,"\u2205","\\varnothing"),n(r,a,c,"\u03b1","\\alpha",!0),n(r,a,c,"\u03b2","\\beta",!0),n(r,a,c,"\u03b3","\\gamma",!0),n(r,a,c,"\u03b4","\\delta",!0),n(r,a,c,"\u03f5","\\epsilon",!0),n(r,a,c,"\u03b6","\\zeta",!0),n(r,a,c,"\u03b7","\\eta",!0),n(r,a,c,"\u03b8","\\theta",!0),n(r,a,c,"\u03b9","\\iota",!0),n(r,a,c,"\u03ba","\\kappa",!0),n(r,a,c,"\u03bb","\\lambda",!0),n(r,a,c,"\u03bc","\\mu",!0),n(r,a,c,"\u03bd","\\nu",!0),n(r,a,c,"\u03be","\\xi",!0),n(r,a,c,"\u03bf","\\omicron",!0),n(r,a,c,"\u03c0","\\pi",!0),n(r,a,c,"\u03c1","\\rho",!0),n(r,a,c,"\u03c3","\\sigma",!0),n(r,a,c,"\u03c4","\\tau",!0),n(r,a,c,"\u03c5","\\upsilon",!0),n(r,a,c,"\u03d5","\\phi",!0),n(r,a,c,"\u03c7","\\chi",!0),n(r,a,c,"\u03c8","\\psi",!0),n(r,a,c,"\u03c9","\\omega",!0),n(r,a,c,"\u03b5","\\varepsilon",!0),n(r,a,c,"\u03d1","\\vartheta",!0),n(r,a,c,"\u03d6","\\varpi",!0),n(r,a,c,"\u03f1","\\varrho",!0),n(r,a,c,"\u03c2","\\varsigma",!0),n(r,a,c,"\u03c6","\\varphi",!0),n(r,a,l,"\u2217","*"),n(r,a,l,"+","+"),n(r,a,l,"\u2212","-"),n(r,a,l,"\u22c5","\\cdot"),n(r,a,l,"\u2218","\\circ"),n(r,a,l,"\xf7","\\div"),n(r,a,l,"\xb1","\\pm"),n(r,a,l,"\xd7","\\times"),n(r,a,l,"\u2229","\\cap"),n(r,a,l,"\u222a","\\cup"),n(r,a,l,"\u2216","\\setminus"),n(r,a,l,"\u2227","\\land"),n(r,a,l,"\u2228","\\lor"),n(r,a,l,"\u2227","\\wedge"),n(r,a,l,"\u2228","\\vee"),n(r,a,v,"\u221a","\\surd"),n(r,a,p,"(","("),n(r,a,p,"[","["),n(r,a,p,"\u27e8","\\langle"),n(r,a,p,"\u2223","\\lvert"),n(r,a,p,"\u2225","\\lVert"),n(r,a,u,")",")"),n(r,a,u,"]","]"),n(r,a,u,"?","?"),n(r,a,u,"!","!"),n(r,a,u,"\u27e9","\\rangle"),n(r,a,u,"\u2223","\\rvert"),n(r,a,u,"\u2225","\\rVert"),n(r,a,m,"=","="),n(r,a,m,"<","<"),n(r,a,m,">",">"),n(r,a,m,":",":"),n(r,a,m,"\u2248","\\approx"),n(r,a,m,"\u2245","\\cong"),n(r,a,m,"\u2265","\\ge"),n(r,a,m,"\u2265","\\geq"),n(r,a,m,"\u2190","\\gets"),n(r,a,m,">","\\gt"),n(r,a,m,"\u2208","\\in"),n(r,a,m,"\u2209","\\notin"),n(r,a,m,"\u0338","\\not"),n(r,a,m,"\u2282","\\subset"),n(r,a,m,"\u2283","\\supset"),n(r,a,m,"\u2286","\\subseteq"),n(r,a,m,"\u2287","\\supseteq"),n(r,o,m,"\u2288","\\nsubseteq"),n(r,o,m,"\u2289","\\nsupseteq"),n(r,a,m,"\u22a8","\\models"),n(r,a,m,"\u2190","\\leftarrow"),n(r,a,m,"\u2264","\\le"),n(r,a,m,"\u2264","\\leq"),n(r,a,m,"<","\\lt"),n(r,a,m,"\u2260","\\ne"),n(r,a,m,"\u2260","\\neq"),n(r,a,m,"\u2192","\\rightarrow"),n(r,a,m,"\u2192","\\to"),n(r,o,m,"\u2271","\\ngeq"),n(r,o,m,"\u2270","\\nleq"),n(r,a,g,null,"\\!"),n(r,a,g,"\xa0","\\ "),n(r,a,g,"\xa0","~"),n(r,a,g,null,"\\,"),n(r,a,g,null,"\\:"),n(r,a,g,null,"\\;"),n(r,a,g,null,"\\enspace"),n(r,a,g,null,"\\qquad"),n(r,a,g,null,"\\quad"),n(r,a,g,"\xa0","\\space"),n(r,a,f,",",","),n(r,a,f,";",";"),n(r,a,f,":","\\colon"),n(r,o,l,"\u22bc","\\barwedge"),n(r,o,l,"\u22bb","\\veebar"),n(r,a,l,"\u2299","\\odot"),n(r,a,l,"\u2295","\\oplus"),n(r,a,l,"\u2297","\\otimes"),n(r,a,v,"\u2202","\\partial"),n(r,a,l,"\u2298","\\oslash"),n(r,o,l,"\u229a","\\circledcirc"),n(r,o,l,"\u22a1","\\boxdot"),n(r,a,l,"\u25b3","\\bigtriangleup"),n(r,a,l,"\u25bd","\\bigtriangledown"),n(r,a,l,"\u2020","\\dagger"),n(r,a,l,"\u22c4","\\diamond"),n(r,a,l,"\u22c6","\\star"),n(r,a,l,"\u25c3","\\triangleleft"),n(r,a,l,"\u25b9","\\triangleright"),n(r,a,p,"{","\\{"),n(i,a,v,"{","\\{"),n(i,a,v,"{","\\textbraceleft"),n(r,a,u,"}","\\}"),n(i,a,v,"}","\\}"),n(i,a,v,"}","\\textbraceright"),n(r,a,p,"{","\\lbrace"),n(r,a,u,"}","\\rbrace"),n(r,a,p,"[","\\lbrack"),n(r,a,u,"]","\\rbrack"),n(i,a,v,"<","\\textless"),n(i,a,v,">","\\textgreater"),n(r,a,p,"\u230a","\\lfloor"),n(r,a,u,"\u230b","\\rfloor"),n(r,a,p,"\u2308","\\lceil"),n(r,a,u,"\u2309","\\rceil"),n(r,a,v,"\\","\\backslash"),n(r,a,v,"\u2223","|"),n(r,a,v,"\u2223","\\vert"),n(i,a,v,"|","\\textbar"),n(r,a,v,"\u2225","\\|"),n(r,a,v,"\u2225","\\Vert"),n(i,a,v,"\u2225","\\textbardbl"),n(r,a,m,"\u2191","\\uparrow"),n(r,a,m,"\u21d1","\\Uparrow"),n(r,a,m,"\u2193","\\downarrow"),n(r,a,m,"\u21d3","\\Downarrow"),n(r,a,m,"\u2195","\\updownarrow"),n(r,a,m,"\u21d5","\\Updownarrow"),n(r,a,h,"\u2210","\\coprod"),n(r,a,h,"\u22c1","\\bigvee"),n(r,a,h,"\u22c0","\\bigwedge"),n(r,a,h,"\u2a04","\\biguplus"),n(r,a,h,"\u22c2","\\bigcap"),n(r,a,h,"\u22c3","\\bigcup"),n(r,a,h,"\u222b","\\int"),n(r,a,h,"\u222b","\\intop"),n(r,a,h,"\u222c","\\iint"),n(r,a,h,"\u222d","\\iiint"),n(r,a,h,"\u220f","\\prod"),n(r,a,h,"\u2211","\\sum"),n(r,a,h,"\u2a02","\\bigotimes"),n(r,a,h,"\u2a01","\\bigoplus"),n(r,a,h,"\u2a00","\\bigodot"),n(r,a,h,"\u222e","\\oint"),n(r,a,h,"\u2a06","\\bigsqcup"),n(r,a,h,"\u222b","\\smallint"),n(i,a,d,"\u2026","\\textellipsis"),n(r,a,d,"\u2026","\\mathellipsis"),n(i,a,d,"\u2026","\\ldots",!0),n(r,a,d,"\u2026","\\ldots",!0),n(r,a,d,"\u22ef","\\cdots",!0),n(r,a,d,"\u22f1","\\ddots",!0),n(r,a,v,"\u22ee","\\vdots",!0),n(r,a,s,"\xb4","\\acute"),n(r,a,s,"`","\\grave"),n(r,a,s,"\xa8","\\ddot"),n(r,a,s,"~","\\tilde"),n(r,a,s,"\xaf","\\bar"),n(r,a,s,"\u02d8","\\breve"),n(r,a,s,"\u02c7","\\check"),n(r,a,s,"^","\\hat"),n(r,a,s,"\u20d7","\\vec"),n(r,a,s,"\u02d9","\\dot"),n(r,a,c,"\u0131","\\imath"),n(r,a,c,"\u0237","\\jmath"),n(i,a,s,"\u02ca","\\'"),n(i,a,s,"\u02cb","\\`"),n(i,a,s,"\u02c6","\\^"),n(i,a,s,"\u02dc","\\~"),n(i,a,s,"\u02c9","\\="),n(i,a,s,"\u02d8","\\u"),n(i,a,s,"\u02d9","\\."),n(i,a,s,"\u02da","\\r"),n(i,a,s,"\u02c7","\\v"),n(i,a,s,"\xa8",'\\"'),n(i,a,s,"\u030b","\\H"),n(i,a,v,"\u2013","--"),n(i,a,v,"\u2013","\\textendash"),n(i,a,v,"\u2014","---"),n(i,a,v,"\u2014","\\textemdash"),n(i,a,v,"\u2018","`"),n(i,a,v,"\u2018","\\textquoteleft"),n(i,a,v,"\u2019","'"),n(i,a,v,"\u2019","\\textquoteright"),n(i,a,v,"\u201c","``"),n(i,a,v,"\u201c","\\textquotedblleft"),n(i,a,v,"\u201d","''"),n(i,a,v,"\u201d","\\textquotedblright"),n(r,a,v,"\xb0","\\degree"),n(i,a,v,"\xb0","\\degree"),n(r,a,c,"\xa3","\\pounds"),n(r,a,c,"\xa3","\\mathsterling"),n(i,a,c,"\xa3","\\pounds"),n(i,a,c,"\xa3","\\textsterling"),n(r,o,v,"\u2720","\\maltese"),n(i,o,v,"\u2720","\\maltese"),n(i,a,g,"\xa0","\\ "),n(i,a,g,"\xa0"," "),n(i,a,g,"\xa0","~");for(var b='0123456789/@."',y=0;y":">","<":"<",'"':""","'":"'"},h=/[&><"']/g,p=void 0;if("undefined"!=typeof document){var f=document.createElement("span");p="textContent"in f?function(e,t){e.textContent=t}:function(e,t){e.innerText=t}}t.exports={contains:s,deflt:l,escape:r,hyphenate:d,indexOf:o,setTextContent:p,clearNode:i}},{}]},{},[1])(1)},e.exports=t()})); +// Copyright 2018 The Distill Template Authors +const ae=function(e,t,n){let r=n,i=0;const a=e.length;for(;r[e.left,e.right]),i=e=>r.some(t=>-1!==e.indexOf(t));n.mightHaveMath=i,ue(e,n)};var he="iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA99JREFUeNrsG4t1ozDMzQSM4A2ODUonKBucN2hugtIJ6E1AboLcBiQTkJsANiAb9OCd/OpzMWBJBl5TvaeXPiiyJetry0J8wW3D3QpjRh3GjneXDq+fSQA9s2mH9x3KDhN4foJfCb8N/Jrv+2fnDn8vLRQOplWHVYdvHZYdZsBcZP1vBmh/n8DzEmhUQDPaOuP9pFuY+JwJHwHnCLQE2tnWBGEyXozY9xCUgHMhhjE2I4heVWtgIkZ83wL6Qgxj1obfWBxymPwe+b00BCCRNPbwfb60yleAkkBHGT5AEehIYz7eJrFDMF9CvH4wwhcGHiHMneFvLDQwlwvMLQq58trRcYBWfYn0A0OgHWQUSu25mE+BnoYKnnEJoeIWAifzOv7vLWd2ZKRfWAIme3tOiUaQ3UnLkb0xj1FxRIeEGKaGIHOs9nEgLaaA9i0JRYo1Ic67wJW86KSKE/ZAM8KuVMk8ITVhmxUxJ3Cl2xlm9Vtkeju1+mpCQNxaEGNCY8bs9X2YqwNoQeGjBWut/ma0QAWy/TqAsHx9wSya3I5IRxOfTC+leG+kA/4vSeEcGBtNUN6byhu3+keEZCQJUNh8MAO7HL6H8pQLnsW/Hd4T4lv93TPjfM7A46iEEqbB5EDOvwYNW6tGNZzT/o+CZ6sqZ6wUtR/wf7mi/VL8iNciT6rHih48Y55b4nKCHJCCzb4y0nwFmin3ZEMIoLfZF8F7nncFmvnWBaBj7CGAYA/WGJsUwHdYqVDwAmNsUgAx4CGgAA7GOOxADYOFWOaIKifuVYzmOpREqA21Mo7aPsgiY1PhOMAmxtR+AUbYH3Id2wc0SAFIQTsn9IUGWR8k9jx3vtXSiAacFxTAGakBk9UudkNECd6jLe+6HrshshvIuC6IlLMRy7er+JpcKma24SlE4cFZSZJDGVVrsNvitQhQrDhW0jfiOLfFd47C42eHT56D/BK0To+58Ahj+cAT8HT1UWlfLZCCd/uKawzU0Rh2EyIX/Icqth3niG8ybNroezwe6khdCNxRN+l4XGdOLVLlOOt2hTRJlr1ETIuMAltVTMz70mJrkdGAaZLSmnBEqmAE32JCMmuTlCnRgsBENtOUpHhvvsYIL0ibnBkaC6QvKcR7738GKp0AKnim7xgUSNv1bpS8QwhBt8r+EP47v/oyRK/S34yJ9nT+AN0Tkm4OdB9E4BsmXM3SnMlRFUrtp6IDpV2eKzdYvF3etm3KhQksbOLChGkSmcBdmcEwvqkrMy5BzL00NZeu3qPYJOOuCc+5NjcWKXQxFvTa3NoXJ4d8in7fiAUuTt781dkvuHX4K8AA2Usy7yNKLy0AAAAASUVORK5CYII=\n",pe=/["'&<>]/,fe=C; +/*! * escape-html * Copyright(c) 2012-2013 TJ Holowaychuk * Copyright(c) 2015 Andreas Lubbe * Copyright(c) 2015 Tiancheng "Timothy" Gu * MIT Licensed */ - - /** - * Module variables. - * @private - */ - - var matchHtmlRegExp = /["'&<>]/; - - /** - * Module exports. - * @public - */ - - var escapeHtml_1 = escapeHtml; - - /** - * Escape special characters in the given string of html. - * - * @param {string} string The string to escape for inserting into HTML - * @return {string} - * @public - */ - - function escapeHtml(string) { - var str = '' + string; - var match = matchHtmlRegExp.exec(str); - - if (!match) { - return str; - } - - var escape; - var html = ''; - var index = 0; - var lastIndex = 0; - - for (index = match.index; index < str.length; index++) { - switch (str.charCodeAt(index)) { - case 34: // " - escape = '"'; - break; - case 38: // & - escape = '&'; - break; - case 39: // ' - escape = '''; - break; - case 60: // < - escape = '<'; - break; - case 62: // > - escape = '>'; - break; - default: - continue; - } - - if (lastIndex !== index) { - html += str.substring(lastIndex, index); - } - - lastIndex = index + 1; - html += escape; - } - - return lastIndex !== index - ? html + str.substring(lastIndex, index) - : html; - } - - // Copyright 2018 The Distill Template Authors - - function Meta(dom, data) { - let head = dom.querySelector('head'); - let appendHead = html => appendHtml(head, html); - - function meta(name, content, force) { - if (content || force) - appendHead(` \n`); - } - - appendHead(` - - - - `); - - if (data.title) { - appendHead(` - ${escapeHtml_1(data.title)} - `); - } - - if (data.url) { - appendHead(` - - `); - } - - - if (data.publishedDate){ - appendHead(` - - - - - `); - } - - if (data.updatedDate) { - appendHead(` - - `); - } - - (data.authors || []).forEach((a) => { - appendHtml(head, ` - `); - }); - - appendHead(` - - - - - - - - - `); - - appendHead(` - - - - - - - - - `); - - // if this is a proprer article, generate Google Scholar meta data - if (data.doiSuffix){ - appendHead(` - \n`); - - meta('citation_title', data.title); - meta('citation_fulltext_html_url', data.url); - meta('citation_volume', data.volume); - meta('citation_issue', data.issue); - meta('citation_firstpage', data.doiSuffix ? `e${data.doiSuffix}` : undefined); - meta('citation_doi', data.doi); - - let journal = data.journal || {}; - meta('citation_journal_title', journal.full_title || journal.title); - meta('citation_journal_abbrev', journal.abbrev_title); - meta('citation_issn', journal.issn); - meta('citation_publisher', journal.publisher); - meta('citation_fulltext_world_readable', '', true); - - if (data.publishedDate){ - meta('citation_online_date', `${data.publishedYear}/${data.publishedMonthPadded}/${data.publishedDayPadded}`); - meta('citation_publication_date', `${data.publishedYear}/${data.publishedMonthPadded}/${data.publishedDayPadded}`); - } - - (data.authors || []).forEach((a) => { - meta('citation_author', `${a.lastName}, ${a.firstName}`); - meta('citation_author_institution', a.affiliation); - }); - } else { - console.warn('No DOI suffix in data; not adding citation meta tags!'); - } - - if (data.citations) { - data.citations.forEach(key => { - if (data.bibliography && data.bibliography.has(key)) { - const entry = data.bibliography.get(key); - meta('citation_reference', citation_meta_content(entry) ); - } else { - console.warn('No bibliography data found for ' + key); - } - }); - } else { - console.warn('No citations found; not adding any references meta tags!'); - } - } - - function appendHtml(el, html) { - el.innerHTML += html; - } - - function citation_meta_content(ref){ - var content = `citation_title=${ref.title};`; - - if (ref.author && ref.author !== '') { - ref.author.split(' and ').forEach(name => { - name = name.trim(); - let last, firsts; - if (name.indexOf(',') != -1){ - last = name.split(',')[0].trim(); - firsts = name.split(',')[1].trim(); - } else { - last = name.split(' ').slice(-1)[0].trim(); - firsts = name.split(' ').slice(0,-1).join(' '); - } - content += `citation_author=${firsts} ${last};`; - }); - } - - if ('year' in ref) { - content += `citation_publication_date=${ref.year};`; - } - - // Special test for arxiv - let arxiv_id_search = /https?:\/\/arxiv\.org\/pdf\/([0-9]*\.[0-9]*)\.pdf/.exec(ref.url); - arxiv_id_search = arxiv_id_search || /https?:\/\/arxiv\.org\/abs\/([0-9]*\.[0-9]*)/.exec(ref.url); - arxiv_id_search = arxiv_id_search || /arXiv preprint arXiv:([0-9]*\.[0-9]*)/.exec(ref.journal); - if (arxiv_id_search && arxiv_id_search[1]){ - content += `citation_arxiv_id=${arxiv_id_search[1]};`; - return content; // arXiv is not considered a journal, so we don't need journal/volume/issue - } - if ('journal' in ref){ - content += `citation_journal_title=${escapeHtml_1(ref.journal)};`; - } - if ('volume' in ref) { - content += `citation_volume=${escapeHtml_1(ref.volume)};`; - } - if ('issue' in ref || 'number' in ref){ - content += `citation_number=${escapeHtml_1(ref.issue || ref.number)};`; - } - return content; - } - - var base = "/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nhtml {\n font-size: 14px;\n\tline-height: 1.6em;\n /* font-family: \"Libre Franklin\", \"Helvetica Neue\", sans-serif; */\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", Arial, sans-serif;\n /*, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";*/\n text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\n\n@media(min-width: 768px) {\n html {\n font-size: 16px;\n }\n}\n\nbody {\n margin: 0;\n}\n\na {\n color: #004276;\n}\n\nfigure {\n margin: 0;\n}\n\ntable {\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}\n\ntable th {\n\ttext-align: left;\n}\n\ntable thead {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\ntable thead th {\n padding-bottom: 0.5em;\n}\n\ntable tbody :first-child td {\n padding-top: 0.5em;\n}\n\npre {\n overflow: auto;\n max-width: 100%;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1em;\n}\n\nsup, sub {\n vertical-align: baseline;\n position: relative;\n top: -0.4em;\n line-height: 1em;\n}\n\nsub {\n top: 0.4em;\n}\n\n.kicker,\n.marker {\n font-size: 15px;\n font-weight: 600;\n color: rgba(0, 0, 0, 0.5);\n}\n\n\n/* Headline */\n\n@media(min-width: 1024px) {\n d-title h1 span {\n display: block;\n }\n}\n\n/* Figure */\n\nfigure {\n position: relative;\n margin-bottom: 2.5em;\n margin-top: 1.5em;\n}\n\nfigcaption+figure {\n\n}\n\nfigure img {\n width: 100%;\n}\n\nfigure svg text,\nfigure svg tspan {\n}\n\nfigcaption,\n.figcaption {\n color: rgba(0, 0, 0, 0.6);\n font-size: 12px;\n line-height: 1.5em;\n}\n\n@media(min-width: 1024px) {\nfigcaption,\n.figcaption {\n font-size: 13px;\n }\n}\n\nfigure.external img {\n background: white;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n padding: 18px;\n box-sizing: border-box;\n}\n\nfigcaption a {\n color: rgba(0, 0, 0, 0.6);\n}\n\nfigcaption b,\nfigcaption strong, {\n font-weight: 600;\n color: rgba(0, 0, 0, 1.0);\n}\n"; - - var layout = "/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@supports not (display: grid) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n display: block;\n padding: 8px;\n }\n}\n\n.base-grid,\ndistill-header,\nd-title,\nd-abstract,\nd-article,\nd-appendix,\ndistill-appendix,\nd-byline,\nd-footnote-list,\nd-citation-list,\ndistill-footer {\n display: grid;\n justify-items: stretch;\n grid-template-columns: [screen-start] 8px [page-start kicker-start text-start gutter-start middle-start] 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr [text-end page-end gutter-end kicker-end middle-end] 8px [screen-end];\n grid-column-gap: 8px;\n}\n\n.grid {\n display: grid;\n grid-column-gap: 8px;\n}\n\n@media(min-width: 768px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start middle-start text-start] 45px 45px 45px 45px 45px 45px 45px 45px [ kicker-end text-end gutter-start] 45px [middle-end] 45px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 16px;\n }\n\n .grid {\n grid-column-gap: 16px;\n }\n}\n\n@media(min-width: 1000px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start] 50px [middle-start] 50px [text-start kicker-end] 50px 50px 50px 50px 50px 50px 50px 50px [text-end gutter-start] 50px [middle-end] 50px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 16px;\n }\n\n .grid {\n grid-column-gap: 16px;\n }\n}\n\n@media(min-width: 1180px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start] 60px [middle-start] 60px [text-start kicker-end] 60px 60px 60px 60px 60px 60px 60px 60px [text-end gutter-start] 60px [middle-end] 60px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 32px;\n }\n\n .grid {\n grid-column-gap: 32px;\n }\n}\n\n\n\n\n.base-grid {\n grid-column: screen;\n}\n\n/* .l-body,\nd-article > * {\n grid-column: text;\n}\n\n.l-page,\nd-title > *,\nd-figure {\n grid-column: page;\n} */\n\n.l-gutter {\n grid-column: gutter;\n}\n\n.l-text,\n.l-body {\n grid-column: text;\n}\n\n.l-page {\n grid-column: page;\n}\n\n.l-body-outset {\n grid-column: middle;\n}\n\n.l-page-outset {\n grid-column: page;\n}\n\n.l-screen {\n grid-column: screen;\n}\n\n.l-screen-inset {\n grid-column: screen;\n padding-left: 16px;\n padding-left: 16px;\n}\n\n\n/* Aside */\n\nd-article aside {\n grid-column: gutter;\n font-size: 12px;\n line-height: 1.6em;\n color: rgba(0, 0, 0, 0.6)\n}\n\n@media(min-width: 768px) {\n aside {\n grid-column: gutter;\n }\n\n .side {\n grid-column: gutter;\n }\n}\n"; - - var print = "/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@media print {\n\n @page {\n size: 8in 11in;\n @bottom-right {\n content: counter(page) \" of \" counter(pages);\n }\n }\n\n html {\n /* no general margins -- CSS Grid takes care of those */\n }\n\n p, code {\n page-break-inside: avoid;\n }\n\n h2, h3 {\n page-break-after: avoid;\n }\n\n d-header {\n visibility: hidden;\n }\n\n d-footer {\n display: none!important;\n }\n\n}\n"; - - var byline = "/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-byline {\n contain: style;\n overflow: hidden;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n font-size: 0.8rem;\n line-height: 1.8em;\n padding: 1.5rem 0;\n min-height: 1.8em;\n}\n\n\nd-byline .byline {\n grid-template-columns: 1fr 1fr;\n grid-column: text;\n}\n\n@media(min-width: 768px) {\n d-byline .byline {\n grid-template-columns: 1fr 1fr 1fr 1fr;\n }\n}\n\nd-byline .authors-affiliations {\n grid-column-end: span 2;\n grid-template-columns: 1fr 1fr;\n margin-bottom: 1em;\n}\n\n@media(min-width: 768px) {\n d-byline .authors-affiliations {\n margin-bottom: 0;\n }\n}\n\nd-byline h3 {\n font-size: 0.6rem;\n font-weight: 400;\n color: rgba(0, 0, 0, 0.5);\n margin: 0;\n text-transform: uppercase;\n}\n\nd-byline p {\n margin: 0;\n}\n\nd-byline a,\nd-article d-byline a {\n color: rgba(0, 0, 0, 0.8);\n text-decoration: none;\n border-bottom: none;\n}\n\nd-article d-byline a:hover {\n text-decoration: underline;\n border-bottom: none;\n}\n\nd-byline p.author {\n font-weight: 500;\n}\n\nd-byline .affiliations {\n\n}\n"; - - var article = "/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-article {\n contain: layout style;\n overflow-x: hidden;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n padding-top: 2rem;\n color: rgba(0, 0, 0, 0.8);\n}\n\nd-article > * {\n grid-column: text;\n}\n\n@media(min-width: 768px) {\n d-article {\n font-size: 16px;\n }\n}\n\n@media(min-width: 1024px) {\n d-article {\n font-size: 1.06rem;\n line-height: 1.7em;\n }\n}\n\n\n/* H2 */\n\n\nd-article .marker {\n text-decoration: none;\n border: none;\n counter-reset: section;\n grid-column: kicker;\n line-height: 1.7em;\n}\n\nd-article .marker:hover {\n border: none;\n}\n\nd-article .marker span {\n padding: 0 3px 4px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n position: relative;\n top: 4px;\n}\n\nd-article .marker:hover span {\n color: rgba(0, 0, 0, 0.7);\n border-bottom: 1px solid rgba(0, 0, 0, 0.7);\n}\n\nd-article h2 {\n font-weight: 600;\n font-size: 24px;\n line-height: 1.25em;\n margin: 2rem 0 1.5rem 0;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n padding-bottom: 1rem;\n}\n\n@media(min-width: 1024px) {\n d-article h2 {\n font-size: 36px;\n }\n}\n\n/* H3 */\n\nd-article h3 {\n font-weight: 700;\n font-size: 18px;\n line-height: 1.4em;\n margin-bottom: 1em;\n margin-top: 2em;\n}\n\n@media(min-width: 1024px) {\n d-article h3 {\n font-size: 20px;\n }\n}\n\n/* H4 */\n\nd-article h4 {\n font-weight: 600;\n text-transform: uppercase;\n font-size: 14px;\n line-height: 1.4em;\n}\n\nd-article a {\n color: inherit;\n}\n\nd-article p,\nd-article ul,\nd-article ol,\nd-article blockquote {\n margin-top: 0;\n margin-bottom: 1em;\n margin-left: 0;\n margin-right: 0;\n}\n\nd-article blockquote {\n border-left: 2px solid rgba(0, 0, 0, 0.2);\n padding-left: 2em;\n font-style: italic;\n color: rgba(0, 0, 0, 0.6);\n}\n\nd-article a {\n border-bottom: 1px solid rgba(0, 0, 0, 0.4);\n text-decoration: none;\n}\n\nd-article a:hover {\n border-bottom: 1px solid rgba(0, 0, 0, 0.8);\n}\n\nd-article .link {\n text-decoration: underline;\n cursor: pointer;\n}\n\nd-article ul,\nd-article ol {\n padding-left: 24px;\n}\n\nd-article li {\n margin-bottom: 1em;\n margin-left: 0;\n padding-left: 0;\n}\n\nd-article li:last-child {\n margin-bottom: 0;\n}\n\nd-article pre {\n font-size: 14px;\n margin-bottom: 20px;\n}\n\nd-article hr {\n grid-column: screen;\n width: 100%;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n margin-top: 60px;\n margin-bottom: 60px;\n}\n\nd-article section {\n margin-top: 60px;\n margin-bottom: 60px;\n}\n\nd-article span.equation-mimic {\n font-family: georgia;\n font-size: 115%;\n font-style: italic;\n}\n\nd-article > d-code,\nd-article section > d-code {\n display: block;\n}\n\nd-article > d-math[block],\nd-article section > d-math[block] {\n display: block;\n}\n\n@media (max-width: 768px) {\n d-article > d-code,\n d-article section > d-code,\n d-article > d-math[block],\n d-article section > d-math[block] {\n overflow-x: scroll;\n -ms-overflow-style: none; // IE 10+\n overflow: -moz-scrollbars-none; // Firefox\n }\n\n d-article > d-code::-webkit-scrollbar,\n d-article section > d-code::-webkit-scrollbar,\n d-article > d-math[block]::-webkit-scrollbar,\n d-article section > d-math[block]::-webkit-scrollbar {\n display: none; // Safari and Chrome\n }\n}\n\nd-article .citation {\n color: #668;\n cursor: pointer;\n}\n\nd-include {\n width: auto;\n display: block;\n}\n\nd-figure {\n contain: layout style;\n}\n\n/* KaTeX */\n\n.katex, .katex-prerendered {\n contain: style;\n display: inline-block;\n}\n\n/* Tables */\n\nd-article table {\n border-collapse: collapse;\n margin-bottom: 1.5rem;\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n}\n\nd-article table th {\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n}\n\nd-article table td {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\nd-article table tr:last-of-type td {\n border-bottom: none;\n}\n\nd-article table th,\nd-article table td {\n font-size: 15px;\n padding: 2px 8px;\n}\n\nd-article table tbody :first-child td {\n padding-top: 2px;\n}\n"; - - var title = "/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-title {\n padding: 2rem 0 1.5rem;\n contain: layout style;\n overflow-x: hidden;\n}\n\n@media(min-width: 768px) {\n d-title {\n padding: 4rem 0 1.5rem;\n }\n}\n\nd-title h1 {\n grid-column: text;\n font-size: 40px;\n font-weight: 700;\n line-height: 1.1em;\n margin: 0 0 0.5rem;\n}\n\n@media(min-width: 768px) {\n d-title h1 {\n font-size: 50px;\n }\n}\n\nd-title p {\n font-weight: 300;\n font-size: 1.2rem;\n line-height: 1.55em;\n grid-column: text;\n}\n\nd-title .status {\n margin-top: 0px;\n font-size: 12px;\n color: #009688;\n opacity: 0.8;\n grid-column: kicker;\n}\n\nd-title .status span {\n line-height: 1;\n display: inline-block;\n padding: 6px 0;\n border-bottom: 1px solid #80cbc4;\n font-size: 11px;\n text-transform: uppercase;\n}\n"; - - var math = "/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nspan.katex-display {\n text-align: left;\n padding: 8px 0 8px 0;\n margin: 0.5em 0 0.5em 1em;\n}\n\nspan.katex {\n -webkit-font-smoothing: antialiased;\n color: rgba(0, 0, 0, 0.8);\n font-size: 1.18em;\n}\n"; - - // Copyright 2018 The Distill Template Authors - - const styles = base + layout + title + byline + article + math + print; - - function makeStyleTag(dom) { - - const styleTagId = 'distill-prerendered-styles'; - const prerenderedTag = dom.getElementById(styleTagId); - if (!prerenderedTag) { - const styleTag = dom.createElement('style'); - styleTag.id = styleTagId; - styleTag.type = 'text/css'; - const cssTextTag = dom.createTextNode(styles); - styleTag.appendChild(cssTextTag); - const firstScriptTag = dom.head.querySelector('script'); - dom.head.insertBefore(styleTag, firstScriptTag); - } - - } - - // Copyright 2018 The Distill Template Authors - - function renderTOC(element, headings) { - - let ToC =` - - -

      Table of contents

      -
        `; - - for (const el of headings) { - // should element be included in TOC? - const isInTitle = el.parentElement.tagName == 'D-TITLE'; - const isException = el.getAttribute('no-toc'); - if (isInTitle || isException) continue; - // create TOC entry - const title = el.textContent; - const link = '#' + el.getAttribute('id'); - - let newLine = '
      • ' + '' + title + '' + '
      • '; - if (el.tagName == 'H3') { - newLine = '
          ' + newLine + '
        '; - } else { - newLine += '
        '; - } - ToC += newLine; - - } - - ToC += '
      '; - element.innerHTML = ToC; - } - - // Copyright 2018 The Distill Template Authors - - function TOC(dom) { - const article = dom.querySelector('d-article'); - const toc = dom.querySelector('d-toc'); - if (toc) { - const headings = article.querySelectorAll('h2, h3'); - renderTOC(toc, headings); - toc.setAttribute('prerendered', 'true'); - } - } - - // Copyright 2018 The Distill Template Authors - // - // Licensed under the Apache License, Version 2.0 (the "License"); - // you may not use this file except in compliance with the License. - // You may obtain a copy of the License at - // - // http://www.apache.org/licenses/LICENSE-2.0 - // - // Unless required by applicable law or agreed to in writing, software - // distributed under the License is distributed on an "AS IS" BASIS, - // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - // See the License for the specific language governing permissions and - // limitations under the License. - - function Typeset(dom) { - - var textNodes = dom.createTreeWalker( - dom.body, - dom.defaultView.NodeFilter.SHOW_TEXT - ); - while (textNodes.nextNode()) { - var n = textNodes.currentNode, - text = n.nodeValue; - if (text && acceptNode(n)) { - text = quotes(text); - text = punctuation(text); - // TODO: Add back support for ligatures once their uppercased versions don't hang Chrome search anymore - // see: https://bugs.chromium.org/p/chromium/issues/detail?id=862648 - // text = ligatures(text); - n.nodeValue = text; - } - } - } - - // 2018-07-11 shancarter@ and ludwigschubert@ no longer know what this was meant to accomplish - // if it was trying to not replace text in any child nodes of those listed here, - // then it does not accomplish that. - function acceptNode(node) { - var parent = node.parentElement; - var isMath = (parent && parent.getAttribute && parent.getAttribute('class')) ? parent.getAttribute('class').includes('katex') || parent.getAttribute('class').includes('MathJax') : false; - return parent && - parent.nodeName !== 'SCRIPT' && - parent.nodeName !== 'STYLE' && - parent.nodeName !== 'CODE' && - parent.nodeName !== 'PRE' && - parent.nodeName !== 'SPAN' && - parent.nodeName !== 'D-HEADER' && - parent.nodeName !== 'D-BYLINE' && - parent.nodeName !== 'D-MATH' && - parent.nodeName !== 'D-CODE' && - parent.nodeName !== 'D-BIBLIOGRAPHY' && - parent.nodeName !== 'D-FOOTER' && - parent.nodeName !== 'D-APPENDIX' && - parent.nodeName !== 'D-FRONTMATTER' && - parent.nodeName !== 'D-TOC' && - parent.nodeType !== 8 && //comment nodes - !isMath; - } - - - /*! - * typeset - Typesetting for the web - * @version v0.1.6 - * @link https://github.com/davidmerfield/Typeset.js - * @author David Merfield - */ - // which has a CC0 license - // http://creativecommons.org/publicdomain/zero/1.0/ - - - function punctuation(text){ - - // Dashes - text = text.replace(/--/g, '\u2014'); - text = text.replace(/\s*\u2014\s*/g,'\u2009\u2014\u2009'); //this has thin spaces - - // Elipses - text = text.replace(/\.\.\./g,'…'); - - // Nbsp for punc with spaces - var NBSP = '\u00a0'; - var NBSP_PUNCTUATION_START = /([«¿¡]) /g; - var NBSP_PUNCTUATION_END = / ([!?:;.,‽»])/g; - - text = text.replace(NBSP_PUNCTUATION_START, '$1' + NBSP); - text = text.replace(NBSP_PUNCTUATION_END, NBSP + '$1'); - - return text; - } - - function quotes(text) { - - text = text - .replace(/(\W|^)"([^\s!?:;.,‽»])/g, '$1\u201c$2') // beginning " - .replace(/(\u201c[^"]*)"([^"]*$|[^\u201c"]*\u201c)/g, '$1\u201d$2') // ending " - .replace(/([^0-9])"/g,'$1\u201d') // remaining " at end of word - .replace(/(\W|^)'(\S)/g, '$1\u2018$2') // beginning ' - .replace(/([a-z])'([a-z])/ig, '$1\u2019$2') // conjunction's possession - .replace(/((\u2018[^']*)|[a-z])'([^0-9]|$)/ig, '$1\u2019$3') // ending ' - .replace(/(\u2018)([0-9]{2}[^\u2019]*)(\u2018([^0-9]|$)|$|\u2019[a-z])/ig, '\u2019$2$3') // abbrev. years like '93 - .replace(/(\B|^)\u2018(?=([^\u2019]*\u2019\b)*([^\u2019\u2018]*\W[\u2019\u2018]\b|[^\u2019\u2018]*$))/ig, '$1\u2019') // backwards apostrophe - .replace(/'''/g, '\u2034') // triple prime - .replace(/("|'')/g, '\u2033') // double prime - .replace(/'/g, '\u2032'); - - // Allow escaped quotes - text = text.replace(/\\“/, '"'); - text = text.replace(/\\”/, '"'); - text = text.replace(/\\’/, '\''); - text = text.replace(/\\‘/, '\''); - - return text; - } - - // Copyright 2018 The Distill Template Authors - - // const template = ` - // if ('IntersectionObserver' in window && - // 'IntersectionObserverEntry' in window && - // 'intersectionRatio' in IntersectionObserverEntry.prototype) { - // // Platform supports IntersectionObserver natively! :-) - // if (!('isIntersecting' in IntersectionObserverEntry.prototype)) { - // Object.defineProperty(IntersectionObserverEntry.prototype, - // 'isIntersecting', { - // get: function () { - // return this.intersectionRatio > 0; - // } - // }); - // } - // } else { - // // Platform does not support webcomponents--loading polyfills synchronously. - // const scriptTag = document.createElement('script'); - // scriptTag.src = '${intersectionObserverPath}'; - // scriptTag.async = false; - // document.currentScript.parentNode.insertBefore(scriptTag, document.currentScript.nextSibling); - // } - // - // if ('registerElement' in document && - // 'import' in document.createElement('link') && - // 'content' in document.createElement('template')) { - // // Platform supports webcomponents natively! :-) - // } else { - // // Platform does not support webcomponents--loading polyfills synchronously. - // const scriptTag = document.createElement('script'); - // scriptTag.src = '${webcomponentPath}'; - // scriptTag.async = false; - // document.currentScript.parentNode.insertBefore(scriptTag, document.currentScript.nextSibling); - // } - // - // - // `; - - - const addBackIn = ` -window.addEventListener('WebComponentsReady', function() { - console.warn('WebComponentsReady'); - const loaderTag = document.createElement('script'); - loaderTag.src = 'https://distill.pub/template.v2.js'; - document.head.insertBefore(loaderTag, document.head.firstChild); -}); -`; - - function render(dom) { - // pull out template script tag - const templateTag = dom.querySelector('script[src*="template.v2.js"]'); - if (templateTag) { - templateTag.parentNode.removeChild(templateTag); - } else { - console.debug('FYI: Did not find template tag when trying to remove it. You may not have added it. Be aware that our polyfills will add it.'); - } - - // add loader - const loaderTag = dom.createElement('script'); - loaderTag.src = 'https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/1.0.17/webcomponents-loader.js'; - dom.head.insertBefore(loaderTag, dom.head.firstChild); - - // add loader event listener to add tempalrte back in - const addTag = dom.createElement('script'); - addTag.innerHTML = addBackIn; - dom.head.insertBefore(addTag, dom.head.firstChild); - - - // create polyfill script tag - // const polyfillScriptTag = dom.createElement('script'); - // polyfillScriptTag.innerHTML = template; - // polyfillScriptTag.id = 'polyfills'; - - // insert at appropriate position--before any other script tag - // const firstScriptTag = dom.head.querySelector('script'); - // dom.head.insertBefore(polyfillScriptTag, firstScriptTag); - } - - // Copyright 2018 The Distill Template Authors - - const styles$1 = ` -d-citation-list { - contain: style; -} - -d-citation-list .references { - grid-column: text; -} - -d-citation-list .references .title { - font-weight: 500; -} -`; - - function renderCitationList(element, entries, dom=document) { - if (entries.size > 0) { - element.style.display = ''; - let list = element.querySelector('.references'); - if (list) { - list.innerHTML = ''; - } else { - const stylesTag = dom.createElement('style'); - stylesTag.innerHTML = styles$1; - element.appendChild(stylesTag); - - const heading = dom.createElement('h3'); - heading.id = 'references'; - heading.textContent = 'References'; - element.appendChild(heading); - - list = dom.createElement('ol'); - list.id = 'references-list'; - list.className = 'references'; - element.appendChild(list); - } - - for (const [key, entry] of entries) { - const listItem = dom.createElement('li'); - listItem.id = key; - listItem.innerHTML = bibliography_cite(entry); - list.appendChild(listItem); - } - } else { - element.style.display = 'none'; - } - } - - // Copyright 2018 The Distill Template Authors - - function CitationList(dom, data) { - const citationListTag = dom.querySelector('d-citation-list'); - if (citationListTag) { - const entries = new Map(data.citations.map( citationKey => { - return [citationKey, data.bibliography.get(citationKey)]; - })); - renderCitationList(citationListTag, entries, dom); - citationListTag.setAttribute('distill-prerendered', 'true'); - } - } - - // Copyright 2018 The Distill Template Authors - // - // 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. - - /* - Try to only reorder things that MAY be user defined. - Try to use templates etc to define the order of our own tags. - */ - - function render$1(dom) { - const head = dom.head; - - const metaIE = head.querySelector('meta[http-equiv]'); - head.insertBefore(metaIE, head.firstChild); - - const metaViewport = head.querySelector('meta[name=viewport]'); - head.insertBefore(metaViewport, head.firstChild); - - const metaCharset = head.querySelector('meta[charset]'); - head.insertBefore(metaCharset, head.firstChild); - } - - var logo = "\n \n\n"; - - const headerTemplate = ` - - -`; - - // Copyright 2018 The Distill Template Authors - - function DistillHeader(dom, data) { - const headerTag = dom.querySelector('distill-header'); - if (!headerTag) { - const header = dom.createElement('distill-header'); - header.innerHTML = headerTemplate; - header.setAttribute('distill-prerendered', ""); - const body = dom.querySelector('body'); - body.insertBefore(header, body.firstChild); - } - } - - // Copyright 2018 The Distill Template Authors - - const styles$2 = ` - -`; - - function appendixTemplate(frontMatter) { - let html = styles$2; - - if (typeof frontMatter.githubUrl !== 'undefined') { - html += ` -

      Updates and Corrections

      -

      `; - if (frontMatter.githubCompareUpdatesUrl) { - html += `View all changes to this article since it was first published.`; - } - html += ` - If you see mistakes or want to suggest changes, please create an issue on GitHub.

      - `; - } - - const journal = frontMatter.journal; - if (typeof journal !== 'undefined' && journal.title === 'Distill') { - html += ` -

      Reuse

      -

      Diagrams and text are licensed under Creative Commons Attribution CC-BY 4.0 with the source available on GitHub, unless noted otherwise. The figures that have been reused from other sources don’t fall under this license and can be recognized by a note in their caption: “Figure from …”.

      - `; - } - - if (typeof frontMatter.publishedDate !== 'undefined') { - html += ` -

      Citation

      -

      For attribution in academic contexts, please cite this work as

      -
      ${frontMatter.concatenatedAuthors}, "${frontMatter.title}", Distill, ${frontMatter.publishedYear}.
      -

      BibTeX citation

      -
      ${serializeFrontmatterToBibtex(frontMatter)}
      - `; - } - - return html; - } - - // Copyright 2018 The Distill Template Authors - - function DistillAppendix(dom, data) { - - const appendixTag = dom.querySelector('d-appendix'); - if (!appendixTag) { - console.warn('No appendix tag found!'); - return; - } - const distillAppendixTag = appendixTag.querySelector('distill-appendix'); - if (!distillAppendixTag) { - const distillAppendix = dom.createElement('distill-appendix'); - appendixTag.appendChild(distillAppendix); - distillAppendix.innerHTML = appendixTemplate(data); - } - - } - - const footerTemplate = ` - - - - -`; - - // Copyright 2018 The Distill Template Authors - - function DistillFooter(dom) { - const footerTag = dom.querySelector('distill-footer'); - if(!footerTag) { - const footer = dom.createElement('distill-footer'); - footer.innerHTML = footerTemplate; - const body = dom.querySelector('body'); - body.appendChild(footer); - } - } - - // Copyright 2018 The Distill Template Authors - - const extractors = new Map([ - ['ExtractFrontmatter', ExtractFrontmatter], - ['ExtractBibliography', ExtractBibliography], - ['ExtractCitations', ExtractCitations], - ]); - - const transforms = new Map([ - ['HTML', HTML], - ['makeStyleTag', makeStyleTag], - ['OptionalComponents', OptionalComponents], - ['TOC', TOC], - ['Byline', Byline], - ['Mathematics', Mathematics], - ['Meta', Meta], - ['Typeset', Typeset], - ['Polyfills', render], - ['CitationList', CitationList], - ['Reorder', render$1] // keep last - ]); - - const distillTransforms = new Map([ - ['DistillHeader', DistillHeader], - ['DistillAppendix', DistillAppendix], - ['DistillFooter', DistillFooter], - ]); - - /* Exported functions */ - - function render$2(dom, data, verbose=true) { - let frontMatter; - if (data instanceof FrontMatter) { - frontMatter = data; - } else { - frontMatter = FrontMatter.fromObject(data); - } - // first, we collect static data from the dom - for (const [name, extract] of extractors.entries()) { - if (verbose) console.warn('Running extractor: ' + name); - extract(dom, frontMatter, verbose); - } - // secondly we use it to transform parts of the dom - for (const [name, transform] of transforms.entries()) { - if (verbose) console.warn('Running transform: ' + name); - // console.warn('Running transform: ', transform); - transform(dom, frontMatter, verbose); - } - dom.body.setAttribute('distill-prerendered', ''); - // the function calling us can now use the transformed dom and filled data object - if (data instanceof FrontMatter) ; else { - frontMatter.assignToObject(data); - } - } - - function distillify(dom, data, verbose=true) { - // thirdly, we can use these additional transforms when publishing on the Distill website - for (const [name, transform] of distillTransforms.entries()) { - if (verbose) console.warn('Running distillify: ', name); - transform(dom, data, verbose); - } - } - - function usesTemplateV2(dom) { - const tags = dom.querySelectorAll('script'); - let usesV2 = undefined; - for (const tag of tags) { - const src = tag.src; - if (src.includes('template.v1.js')) { - usesV2 = false; - } else if (src.includes('template.v2.js')) { - usesV2 = true; - } else if (src.includes('template.')) { - throw new Error('Uses distill template, but unknown version?!'); - } - } - - if (usesV2 === undefined) { - throw new Error('Does not seem to use Distill template at all.'); - } else { - return usesV2; - } - } - - const testing = { - extractors: extractors, - transforms: transforms, - distillTransforms: distillTransforms - }; - - exports.FrontMatter = FrontMatter; - exports.distillify = distillify; - exports.render = render$2; - exports.testing = testing; - exports.usesTemplateV2 = usesTemplateV2; - - Object.defineProperty(exports, '__esModule', { value: true }); - -}))); -//# sourceMappingURL=transforms.v2.js.map +// Copyright 2018 The Distill Template Authors +const me='/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nhtml {\n font-size: 14px;\n\tline-height: 1.6em;\n /* font-family: "Libre Franklin", "Helvetica Neue", sans-serif; */\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif;\n /*, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";*/\n text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\n\n@media(min-width: 768px) {\n html {\n font-size: 16px;\n }\n}\n\nbody {\n margin: 0;\n}\n\na {\n color: #004276;\n}\n\nfigure {\n margin: 0;\n}\n\ntable {\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}\n\ntable th {\n\ttext-align: left;\n}\n\ntable thead {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\ntable thead th {\n padding-bottom: 0.5em;\n}\n\ntable tbody :first-child td {\n padding-top: 0.5em;\n}\n\npre {\n overflow: auto;\n max-width: 100%;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1em;\n}\n\nsup, sub {\n vertical-align: baseline;\n position: relative;\n top: -0.4em;\n line-height: 1em;\n}\n\nsub {\n top: 0.4em;\n}\n\n.kicker,\n.marker {\n font-size: 15px;\n font-weight: 600;\n color: rgba(0, 0, 0, 0.5);\n}\n\n\n/* Headline */\n\n@media(min-width: 1024px) {\n d-title h1 span {\n display: block;\n }\n}\n\n/* Figure */\n\nfigure {\n position: relative;\n margin-bottom: 2.5em;\n margin-top: 1.5em;\n}\n\nfigcaption+figure {\n\n}\n\nfigure img {\n width: 100%;\n}\n\nfigure svg text,\nfigure svg tspan {\n}\n\nfigcaption,\n.figcaption {\n color: rgba(0, 0, 0, 0.6);\n font-size: 12px;\n line-height: 1.5em;\n}\n\n@media(min-width: 1024px) {\nfigcaption,\n.figcaption {\n font-size: 13px;\n }\n}\n\nfigure.external img {\n background: white;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n padding: 18px;\n box-sizing: border-box;\n}\n\nfigcaption a {\n color: rgba(0, 0, 0, 0.6);\n}\n\nfigcaption b,\nfigcaption strong, {\n font-weight: 600;\n color: rgba(0, 0, 0, 1.0);\n}\n'+'/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@supports not (display: grid) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n display: block;\n padding: 8px;\n }\n}\n\n.base-grid,\ndistill-header,\nd-title,\nd-abstract,\nd-article,\nd-appendix,\ndistill-appendix,\nd-byline,\nd-footnote-list,\nd-citation-list,\ndistill-footer {\n display: grid;\n justify-items: stretch;\n grid-template-columns: [screen-start] 8px [page-start kicker-start text-start gutter-start middle-start] 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr [text-end page-end gutter-end kicker-end middle-end] 8px [screen-end];\n grid-column-gap: 8px;\n}\n\n.grid {\n display: grid;\n grid-column-gap: 8px;\n}\n\n@media(min-width: 768px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start middle-start text-start] 45px 45px 45px 45px 45px 45px 45px 45px [ kicker-end text-end gutter-start] 45px [middle-end] 45px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 16px;\n }\n\n .grid {\n grid-column-gap: 16px;\n }\n}\n\n@media(min-width: 1000px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start] 50px [middle-start] 50px [text-start kicker-end] 50px 50px 50px 50px 50px 50px 50px 50px [text-end gutter-start] 50px [middle-end] 50px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 16px;\n }\n\n .grid {\n grid-column-gap: 16px;\n }\n}\n\n@media(min-width: 1180px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start] 60px [middle-start] 60px [text-start kicker-end] 60px 60px 60px 60px 60px 60px 60px 60px [text-end gutter-start] 60px [middle-end] 60px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 32px;\n }\n\n .grid {\n grid-column-gap: 32px;\n }\n}\n\n\n\n\n.base-grid {\n grid-column: screen;\n}\n\n/* .l-body,\nd-article > * {\n grid-column: text;\n}\n\n.l-page,\nd-title > *,\nd-figure {\n grid-column: page;\n} */\n\n.l-gutter {\n grid-column: gutter;\n}\n\n.l-text,\n.l-body {\n grid-column: text;\n}\n\n.l-page {\n grid-column: page;\n}\n\n.l-body-outset {\n grid-column: middle;\n}\n\n.l-page-outset {\n grid-column: page;\n}\n\n.l-screen {\n grid-column: screen;\n}\n\n.l-screen-inset {\n grid-column: screen;\n padding-left: 16px;\n padding-left: 16px;\n}\n\n\n/* Aside */\n\nd-article aside {\n grid-column: gutter;\n font-size: 12px;\n line-height: 1.6em;\n color: rgba(0, 0, 0, 0.6)\n}\n\n@media(min-width: 768px) {\n aside {\n grid-column: gutter;\n }\n\n .side {\n grid-column: gutter;\n }\n}\n'+'/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-title {\n padding: 2rem 0 1.5rem;\n contain: layout style;\n overflow-x: hidden;\n}\n\n@media(min-width: 768px) {\n d-title {\n padding: 4rem 0 1.5rem;\n }\n}\n\nd-title h1 {\n grid-column: text;\n font-size: 40px;\n font-weight: 700;\n line-height: 1.1em;\n margin: 0 0 0.5rem;\n}\n\n@media(min-width: 768px) {\n d-title h1 {\n font-size: 50px;\n }\n}\n\nd-title p {\n font-weight: 300;\n font-size: 1.2rem;\n line-height: 1.55em;\n grid-column: text;\n}\n\nd-title .status {\n margin-top: 0px;\n font-size: 12px;\n color: #009688;\n opacity: 0.8;\n grid-column: kicker;\n}\n\nd-title .status span {\n line-height: 1;\n display: inline-block;\n padding: 6px 0;\n border-bottom: 1px solid #80cbc4;\n font-size: 11px;\n text-transform: uppercase;\n}\n'+'/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-byline {\n contain: style;\n overflow: hidden;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n font-size: 0.8rem;\n line-height: 1.8em;\n padding: 1.5rem 0;\n min-height: 1.8em;\n}\n\n\nd-byline .byline {\n grid-template-columns: 1fr 1fr;\n grid-column: text;\n}\n\n@media(min-width: 768px) {\n d-byline .byline {\n grid-template-columns: 1fr 1fr 1fr 1fr;\n }\n}\n\nd-byline .authors-affiliations {\n grid-column-end: span 2;\n grid-template-columns: 1fr 1fr;\n margin-bottom: 1em;\n}\n\n@media(min-width: 768px) {\n d-byline .authors-affiliations {\n margin-bottom: 0;\n }\n}\n\nd-byline h3 {\n font-size: 0.6rem;\n font-weight: 400;\n color: rgba(0, 0, 0, 0.5);\n margin: 0;\n text-transform: uppercase;\n}\n\nd-byline p {\n margin: 0;\n}\n\nd-byline a,\nd-article d-byline a {\n color: rgba(0, 0, 0, 0.8);\n text-decoration: none;\n border-bottom: none;\n}\n\nd-article d-byline a:hover {\n text-decoration: underline;\n border-bottom: none;\n}\n\nd-byline p.author {\n font-weight: 500;\n}\n\nd-byline .affiliations {\n\n}\n'+'/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-article {\n contain: layout style;\n overflow-x: hidden;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n padding-top: 2rem;\n color: rgba(0, 0, 0, 0.8);\n}\n\nd-article > * {\n grid-column: text;\n}\n\n@media(min-width: 768px) {\n d-article {\n font-size: 16px;\n }\n}\n\n@media(min-width: 1024px) {\n d-article {\n font-size: 1.06rem;\n line-height: 1.7em;\n }\n}\n\n\n/* H2 */\n\n\nd-article .marker {\n text-decoration: none;\n border: none;\n counter-reset: section;\n grid-column: kicker;\n line-height: 1.7em;\n}\n\nd-article .marker:hover {\n border: none;\n}\n\nd-article .marker span {\n padding: 0 3px 4px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n position: relative;\n top: 4px;\n}\n\nd-article .marker:hover span {\n color: rgba(0, 0, 0, 0.7);\n border-bottom: 1px solid rgba(0, 0, 0, 0.7);\n}\n\nd-article h2 {\n font-weight: 600;\n font-size: 24px;\n line-height: 1.25em;\n margin: 2rem 0 1.5rem 0;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n padding-bottom: 1rem;\n}\n\n@media(min-width: 1024px) {\n d-article h2 {\n font-size: 36px;\n }\n}\n\n/* H3 */\n\nd-article h3 {\n font-weight: 700;\n font-size: 18px;\n line-height: 1.4em;\n margin-bottom: 1em;\n margin-top: 2em;\n}\n\n@media(min-width: 1024px) {\n d-article h3 {\n font-size: 20px;\n }\n}\n\n/* H4 */\n\nd-article h4 {\n font-weight: 600;\n text-transform: uppercase;\n font-size: 14px;\n line-height: 1.4em;\n}\n\nd-article a {\n color: inherit;\n}\n\nd-article p,\nd-article ul,\nd-article ol,\nd-article blockquote {\n margin-top: 0;\n margin-bottom: 1em;\n margin-left: 0;\n margin-right: 0;\n}\n\nd-article blockquote {\n border-left: 2px solid rgba(0, 0, 0, 0.2);\n padding-left: 2em;\n font-style: italic;\n color: rgba(0, 0, 0, 0.6);\n}\n\nd-article a {\n border-bottom: 1px solid rgba(0, 0, 0, 0.4);\n text-decoration: none;\n}\n\nd-article a:hover {\n border-bottom: 1px solid rgba(0, 0, 0, 0.8);\n}\n\nd-article .link {\n text-decoration: underline;\n cursor: pointer;\n}\n\nd-article ul,\nd-article ol {\n padding-left: 24px;\n}\n\nd-article li {\n margin-bottom: 1em;\n margin-left: 0;\n padding-left: 0;\n}\n\nd-article li:last-child {\n margin-bottom: 0;\n}\n\nd-article pre {\n font-size: 14px;\n margin-bottom: 20px;\n}\n\nd-article hr {\n grid-column: screen;\n width: 100%;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n margin-top: 60px;\n margin-bottom: 60px;\n}\n\nd-article section {\n margin-top: 60px;\n margin-bottom: 60px;\n}\n\nd-article span.equation-mimic {\n font-family: georgia;\n font-size: 115%;\n font-style: italic;\n}\n\nd-article > d-code,\nd-article section > d-code {\n display: block;\n}\n\nd-article > d-math[block],\nd-article section > d-math[block] {\n display: block;\n}\n\n@media (max-width: 768px) {\n d-article > d-code,\n d-article section > d-code,\n d-article > d-math[block],\n d-article section > d-math[block] {\n overflow-x: scroll;\n -ms-overflow-style: none; // IE 10+\n overflow: -moz-scrollbars-none; // Firefox\n }\n\n d-article > d-code::-webkit-scrollbar,\n d-article section > d-code::-webkit-scrollbar,\n d-article > d-math[block]::-webkit-scrollbar,\n d-article section > d-math[block]::-webkit-scrollbar {\n display: none; // Safari and Chrome\n }\n}\n\nd-article .citation {\n color: #668;\n cursor: pointer;\n}\n\nd-include {\n width: auto;\n display: block;\n}\n\nd-figure {\n contain: layout style;\n}\n\n/* KaTeX */\n\n.katex, .katex-prerendered {\n contain: style;\n display: inline-block;\n}\n\n/* Tables */\n\nd-article table {\n border-collapse: collapse;\n margin-bottom: 1.5rem;\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n}\n\nd-article table th {\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n}\n\nd-article table td {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\nd-article table tr:last-of-type td {\n border-bottom: none;\n}\n\nd-article table th,\nd-article table td {\n font-size: 15px;\n padding: 2px 8px;\n}\n\nd-article table tbody :first-child td {\n padding-top: 2px;\n}\n'+'/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nspan.katex-display {\n text-align: left;\n padding: 8px 0 8px 0;\n margin: 0.5em 0 0.5em 1em;\n}\n\nspan.katex {\n -webkit-font-smoothing: antialiased;\n color: rgba(0, 0, 0, 0.8);\n font-size: 1.18em;\n}\n'+'/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@media print {\n\n @page {\n size: 8in 11in;\n @bottom-right {\n content: counter(page) " of " counter(pages);\n }\n }\n\n html {\n /* no general margins -- CSS Grid takes care of those */\n }\n\n p, code {\n page-break-inside: avoid;\n }\n\n h2, h3 {\n page-break-after: avoid;\n }\n\n d-header {\n visibility: hidden;\n }\n\n d-footer {\n display: none!important;\n }\n\n}\n',ge="\nwindow.addEventListener('WebComponentsReady', function() {\n console.warn('WebComponentsReady');\n const loaderTag = document.createElement('script');\n loaderTag.src = 'https://distill.pub/template.v2.js';\n document.head.insertBefore(loaderTag, document.head.firstChild);\n});\n",ve="\nd-citation-list {\n contain: style;\n}\n\nd-citation-list .references {\n grid-column: text;\n}\n\nd-citation-list .references .title {\n font-weight: 500;\n}\n";var be='\n \n\n';const ye=`\n\n\n`,xe="\n\n",we=`\n\n\n\n\n`,ke=new Map([["ExtractFrontmatter",a],["ExtractBibliography",p],["ExtractCitations",w]]),Me=new Map([["HTML",k],["makeStyleTag",R],["OptionalComponents",z],["TOC",O],["Byline",S],["Mathematics",A],["Meta",T],["Typeset",q],["Polyfills",I],["CitationList",P],["Reorder",j]]),Se=new Map([["DistillHeader",F],["DistillAppendix",U],["DistillFooter",Y]]),ze={extractors:ke,transforms:Me,distillTransforms:Se};e.FrontMatter=ne,e.distillify=G,e.render=V,e.testing=ze,e.usesTemplateV2=W,Object.defineProperty(e,"__esModule",{value:!0})}); \ No newline at end of file diff --git a/assets/js/masonry.js b/assets/js/masonry.js index 054f3a080ce0..57fd6fe562c6 100644 --- a/assets/js/masonry.js +++ b/assets/js/masonry.js @@ -1,12 +1 @@ -$(document).ready(function() { - // Init Masonry - var $grid = $('.grid').masonry({ - gutter: 10, - horizontalOrder: true, - itemSelector: '.grid-item', - }); - // Layout Masonry after each image loads - $grid.imagesLoaded().progress( function() { - $grid.masonry('layout'); - }); -}); +$(document).ready(function(){var r=$(".grid").masonry({gutter:10,horizontalOrder:!0,itemSelector:".grid-item"});r.imagesLoaded().progress(function(){r.masonry("layout")})}); \ No newline at end of file diff --git a/assets/js/theme.js b/assets/js/theme.js index 8cd515105b97..3eb6d1cb95be 100644 --- a/assets/js/theme.js +++ b/assets/js/theme.js @@ -1,83 +1 @@ -// Has to be in the head tag, otherwise a flicker effect will occur. - -let toggleTheme = (theme) => { - if (theme == "dark") { - setTheme("light"); - } else { - setTheme("dark"); - } -} - - -let setTheme = (theme) => { - transTheme(); - setHighlight(theme); - setGiscusTheme(theme); - - if (theme) { - document.documentElement.setAttribute("data-theme", theme); - } - else { - document.documentElement.removeAttribute("data-theme"); - } - localStorage.setItem("theme", theme); - - // Updates the background of medium-zoom overlay. - if (typeof medium_zoom !== 'undefined') { - medium_zoom.update({ - background: getComputedStyle(document.documentElement) - .getPropertyValue('--global-bg-color') + 'ee', // + 'ee' for trasparency. - }) - } -}; - - -let setHighlight = (theme) => { - if (theme == "dark") { - document.getElementById("highlight_theme_light").media = "none"; - document.getElementById("highlight_theme_dark").media = ""; - } else { - document.getElementById("highlight_theme_dark").media = "none"; - document.getElementById("highlight_theme_light").media = ""; - } -} - - -let setGiscusTheme = (theme) => { - - function sendMessage(message) { - const iframe = document.querySelector('iframe.giscus-frame'); - if (!iframe) return; - iframe.contentWindow.postMessage({ giscus: message }, 'https://giscus.app'); - } - - sendMessage({ - setConfig: { - theme: theme - } - }); - -} - - -let transTheme = () => { - document.documentElement.classList.add("transition"); - window.setTimeout(() => { - document.documentElement.classList.remove("transition"); - }, 500) -} - - -let initTheme = (theme) => { - if (theme == null || theme == 'null') { - const userPref = window.matchMedia; - if (userPref && userPref('(prefers-color-scheme: dark)').matches) { - theme = 'dark'; - } - } - - setTheme(theme); -} - - -initTheme(localStorage.getItem("theme")); +let toggleTheme=e=>{setTheme("dark"==e?"light":"dark")},setTheme=e=>{transTheme(),setHighlight(e),setGiscusTheme(e),e?document.documentElement.setAttribute("data-theme",e):document.documentElement.removeAttribute("data-theme"),localStorage.setItem("theme",e),"undefined"!=typeof medium_zoom&&medium_zoom.update({background:getComputedStyle(document.documentElement).getPropertyValue("--global-bg-color")+"ee"})},setHighlight=e=>{"dark"==e?(document.getElementById("highlight_theme_light").media="none",document.getElementById("highlight_theme_dark").media=""):(document.getElementById("highlight_theme_dark").media="none",document.getElementById("highlight_theme_light").media="")},setGiscusTheme=e=>{function t(e){const t=document.querySelector("iframe.giscus-frame");t&&t.contentWindow.postMessage({giscus:e},"https://giscus.app")}t({setConfig:{theme:e}})},transTheme=()=>{document.documentElement.classList.add("transition"),window.setTimeout(()=>{document.documentElement.classList.remove("transition")},500)},initTheme=e=>{if(null==e||"null"==e){const t=window.matchMedia;t&&t("(prefers-color-scheme: dark)").matches&&(e="dark")}setTheme(e)};initTheme(localStorage.getItem("theme")); \ No newline at end of file diff --git a/assets/js/zoom.js b/assets/js/zoom.js index c8610d6118dd..2a8bc1fb86f7 100644 --- a/assets/js/zoom.js +++ b/assets/js/zoom.js @@ -1,8 +1 @@ -// Initialize medium zoom. -$(document).ready(function() { - medium_zoom = mediumZoom('[data-zoomable]', { - margin: 100, - background: getComputedStyle(document.documentElement) - .getPropertyValue('--global-bg-color') + 'ee', // + 'ee' for trasparency. - }) -}); +$(document).ready(function(){medium_zoom=mediumZoom("[data-zoomable]",{margin:100,background:getComputedStyle(document.documentElement).getPropertyValue("--global-bg-color")+"ee"})}); \ No newline at end of file diff --git a/bin/cibuild b/bin/cibuild deleted file mode 100755 index d5c9e1956fe7..000000000000 --- a/bin/cibuild +++ /dev/null @@ -1 +0,0 @@ -bundle exec jekyll build diff --git a/bin/deploy b/bin/deploy deleted file mode 100755 index b5825b7d0aec..000000000000 --- a/bin/deploy +++ /dev/null @@ -1,116 +0,0 @@ -#!/usr/bin/env bash - -# Run this script to deploy the app to Github Pages - -# Parse cmd arguments - -SRC_BRANCH="main" -DEPLOY_BRANCH="gh-pages" - -USAGE_MSG="usage: deploy [-h|--help] [-u|--user] [-s|--src SRC_BRANCH] [-d|--deploy DEPLOY_BRANCH] [--verbose] [--no-push]" - -while [[ $# > 0 ]]; do - key="$1" - - case $key in - -h|--help) - echo $USAGE_MSG - exit 0 - ;; - -u|--user) - ;; - -s|--src) - SRC_BRANCH="$2" - shift - ;; - -d|--deploy) - DEPLOY_BRANCH="$2" - shift - ;; - --verbose) - set -x - ;; - --no-push) - NO_PUSH="--no-push" - ;; - *) - echo "Option $1 is unknown." >&2 - echo $USAGE_MSG >&2 - exit 1 - ;; - esac - shift -done - -# Exit if any subcommand fails -set -e - -echo "Deploying..." -echo "Source branch: $SRC_BRANCH" -echo "Deploy branch: $DEPLOY_BRANCH" - -read -r -p "Do you want to proceed? [y/N] " response -if [[ ! $response =~ ^([yY][eE][sS]|[yY])+$ ]] -then - echo "Aborting." - [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1 -fi - -# Check if there are any uncommitted changes -if ! git diff-index --quiet HEAD --; then - echo "Changes to the following files are uncommitted:" - git diff-index --name-only HEAD -- - echo "Please commit the changes before proceeding." - echo "Aborting." - [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1 -fi - -# Check if there are any untracked files -if ! test -z "$(git ls-files --exclude-standard --others)"; then - echo "There are untracked files:" - git ls-files --exclude-standard --others - echo "Please commit those files or stash them before proceeding." - echo "Aborting." - [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1 -fi - -# Switch to source branch (creates it if necessary from the current branch) -if [ `git branch | grep $SRC_BRANCH | tr ' ' '\n' | tail -1` ] -then - git checkout $SRC_BRANCH -else - git checkout -b $SRC_BRANCH -fi - -# Checkout DEPLOY_BRANCH branch -if [ `git branch | grep $DEPLOY_BRANCH` ] -then - git branch -D $DEPLOY_BRANCH -fi -git checkout -b $DEPLOY_BRANCH - -# Export JEKYLL_ENV=production -export JEKYLL_ENV=production - -# Build site -bundle exec jekyll build - -# Delete and move files -find . -maxdepth 1 ! -name '_site' ! -name '.git' ! -name 'CNAME' ! -name '.gitignore' -exec rm -rf {} \; -mv _site/* . -rm -R _site/ - -# Create `.nojekyll` file (bypass GitHub Pages Jekyll processing) -touch .nojekyll - -# Push to DEPLOY_BRANCH -git add -fA -git commit --allow-empty -m "Deploy gh-pages: ${GITHUB_SHA::8} ~ $(git log -1 --pretty=%B)" -[[ ${NO_PUSH} ]] || git push -f -q origin $DEPLOY_BRANCH - -# Move back to SRC_BRANCH -git checkout $SRC_BRANCH - -echo "Deployed successfully!" - -exit 0 diff --git a/bin/docker_build_image.sh b/bin/docker_build_image.sh deleted file mode 100755 index fe208afbf7ae..000000000000 --- a/bin/docker_build_image.sh +++ /dev/null @@ -1,5 +0,0 @@ - FILE=Gemfile.lock -if [ -f "$FILE" ]; then - rm $FILE -fi - docker build -t "al-folio:latest" . \ No newline at end of file diff --git a/bin/docker_run.sh b/bin/docker_run.sh deleted file mode 100755 index 9c3d3d8a0abb..000000000000 --- a/bin/docker_run.sh +++ /dev/null @@ -1,8 +0,0 @@ -FILE=Gemfile.lock -if [ -f "$FILE" ]; then - rm $FILE -fi -docker run --rm -v "$PWD:/srv/jekyll/" -p "8080:8080" \ - -it al-folio:latest bundler \ - exec jekyll serve --watch --port=8080 --host=0.0.0.0 \ - --verbose --livereload \ No newline at end of file diff --git a/bin/dockerhub_run.sh b/bin/dockerhub_run.sh deleted file mode 100755 index ac6a14e9ef2f..000000000000 --- a/bin/dockerhub_run.sh +++ /dev/null @@ -1,8 +0,0 @@ -FILE=Gemfile.lock -if [ -f "$FILE" ]; then - rm $FILE -fi -docker run --rm -v "$PWD:/srv/jekyll/" -p "8080:8080" \ - -it amirpourmand/al-folio bundler \ - exec jekyll serve --watch --port=8080 --host=0.0.0.0 \ - --verbose --livereload diff --git a/blog/2020/index.html b/blog/2020/index.html new file mode 100644 index 000000000000..07cd6f3ce99a --- /dev/null +++ b/blog/2020/index.html @@ -0,0 +1,17 @@ + 2020 • Rohan Deb Sarkar

      2020

      an archive of posts from this year

      © Copyright 2024 Rohan Deb Sarkar • Powered by Jekyll with al-folio theme • Hosted on GitHub Pages • Last updated: 01 Jan 2024
      envelope linkedin github moon sun \ No newline at end of file diff --git a/blog/2020/remembering-satyajit-ray/index.html b/blog/2020/remembering-satyajit-ray/index.html new file mode 100644 index 000000000000..c2f53ea3b75b --- /dev/null +++ b/blog/2020/remembering-satyajit-ray/index.html @@ -0,0 +1,16 @@ + Remembering Satyajit Ray on his Birth Centenary • Rohan Deb Sarkar

      Remembering Satyajit Ray on his Birth Centenary

      Satyajit Ray
      Satyajit Ray. © Nemai Ghosh

      Satyajit Ray was born on May 2, 1921. The upcoming year we will be celebrating his 100th birthday. He is best known throughout the world as “the greatest film maker of all time”. The Bengali Maestro directed many films throughout his life which has influenced many filmmakers all over the world. His first film “Pather Panchali”, the first movie of the “Apu Triology” is still regarded as one of the best films ever created.

      “Never having seen a Satyajit Ray film is like never having seen the Sun or the Moon” -Akira Kurosawa

      Stayjit Ray was inspired into film making by Vittorio De Sica’s Italian neorealist film “Bicycle Thieves” while he was working for an advertising agency in London. While working in London, Ray watched 99 films and had made his mind for becoming a filmmaker. After returning back to India, Ray decided to make first film on Bibhutibhushan Bandyopadhyay’s novel “Pather Panchali”. While making his first film Ray faced many difficulties, he was repeatedly denied by the producers until Ray decided to make the film with his own money. But soon realised that the amount he had with him was not enough to make a film. He then again approached the producers, this time also they denied him or asked him to change how the film ends. At last Ray approached Government of West Bengal for a loan, who also asked him to modify his script and incorporate a happy ending but Ray denied, ultimately Government of West Bengal provided Ray with the loan. Ray then completed his first film which took him an unusual amount of time of two and a half years for shooting of a film, which we today know as one of the best films ever directed on the planet. “Pather Panchali” was finally released in 1955. It went onto win many international awards from all over the world including the award for The best Human Documentary in 1956 Cannes Film Festival.

      “It is absurd to compare it with any other Indian cinema…. Pather Panchali is pure cinema.” -Times of India

      Satyajit Ray was hugely inspired from Rabindranath Tagore’s works and had said it was because of Tagore, he was acquainted to the Indian and far eastern art.

      “I consider the three years I spent in Santiniketan as the most fruitful of my life …. Santiniketan opened my eyes for the first time to the splendours of Indian and Far Eastern art. Until then I was completely under the sway of Western art, music and literature. Santiniketan made me the combined product of East and West that I am.” -Satyajit Ray

      He was awarded the Honorary Academy Award (Honorary Oscars) as a lifetime achievement award in 1991 by the Academy of Motion Picture Arts and Sciences

      “in recognition of his rare mastery of the art of motion pictures, and of his profound humanitarian outlook, which has had an indelible influence on filmmakers and audiences throughout the world.”

      Satyajit Ray was awarded Dadasaheb Phalke Award in 1985 and Bahrat Ratna in the year 1992. He was also awarded the highest civilian award from France and Yugoslavia, The Legion of Honour and The Yugoslav Star respectively. His films has inspired many. His influences can be observed in many cinemas from Hollywood to Bollywood.

      Although he is well known around the world as “the best filmmaker of all time” but he is also one of the greatest writers of the Bengali Literature and a favourite among the Bengali readers. His characters such as Feluda, a sleuth; Professor Shonku, a scientist; and Tarini Khuro, a traveller; are very popular not only in Bengal but all over India. He was awarded an honorary Doctorate by the Royal College of Arts and a Doctor of Letters form Oxford University for his contributions in literature.

      Ray’s humanitarian works has showed the world the greatness of Bengali cum Indian Cinema. His humanitarian approach towards parallel cinema has gained praise from all over the world.

      Ray said, “He aims to capture both what is unique in the Indian experience and that which is universal.” The Academy Archives started “Satyajit Ray Preservation Project”, after the Horary Oscars was awarded to him. Today, the Academy has 18 feature films and one short film of Satyajit Ray digitally archived and has preserved many more so that they are never lost, as they said it will inspire generations after generations of filmmakers to come. The original film roll of “Pather Panchali” was burnt in an accident, but the burnt original film of “Pather Panchali” was kept in a museum by the Academy for directors to get inspiration from. A video explaining how Satyajit Ray’s films were restored can be viewed here.


      Originally published at rohandebsarkar.blogspot.com on May 3, 2020.

      © Copyright 2024 Rohan Deb Sarkar • Powered by Jekyll with al-folio theme • Hosted on GitHub Pages • Last updated: 01 Jan 2024
      envelope linkedin github moon sun \ No newline at end of file diff --git a/blog/index.html b/blog/index.html index 46c6d43eb926..f32f9d488bec 100644 --- a/blog/index.html +++ b/blog/index.html @@ -1,100 +1,17 @@ ---- -layout: default -title: Blog -permalink: /blog/ -pagination: - enabled: true - collection: posts - permalink: /page/:num/ - per_page: 5 - sort_field: date - sort_reverse: true - trail: - before: 1 # The number of links before the current page - after: 3 # The number of links after the current page ---- - -
      - -
      -

      {{ site.blog_name }}

      -

      {{ site.blog_description }}

      -
      - - {% if site.display_tags %} -
      -
        - {% for tag in site.display_tags %} -
      • - # {{ tag }} -
      • - {% unless forloop.last %} - • - {% endunless %} - {% endfor %} -
      -
      - {% endif %} - -
        - {% for post in paginator.posts %} - - {% if post.external_source == blank %} - {% assign read_time = post.content | number_of_words | divided_by: 180 | plus: 1 %} - {% else %} - {% assign read_time = post.feed_content | strip_html | number_of_words | divided_by: 180 | plus: 1 %} - {% endif %} - {% assign year = post.date | date: "%Y" %} - {% assign tags = post.tags | join: "" %} - {% assign categories = post.categories | join: "" %} - -
      • - -

        - {% if post.redirect == blank %} - {{ post.title }} - {% else %} - {% if post.redirect contains '://' %} - {{ post.title }} - - - - {% else %} - {{ post.title }} - {% endif %} - {% endif %} -

        -

        {{ post.description }}

        - -
      • - - {% endfor %} -
      - - {% include pagination.html %} - -
      + Blog • Rohan Deb Sarkar

      Blog

      Rohan Deb Sarkar's Blog

      © Copyright 2024 Rohan Deb Sarkar • Powered by Jekyll with al-folio theme • Hosted on GitHub Pages • Last updated: 01 Jan 2024
      envelope linkedin github moon sun \ No newline at end of file diff --git a/blog/tag/birth-centenary/index.html b/blog/tag/birth-centenary/index.html new file mode 100644 index 000000000000..823b671a32af --- /dev/null +++ b/blog/tag/birth-centenary/index.html @@ -0,0 +1,17 @@ + birth-centenary • Rohan Deb Sarkar

      # birth-centenary

      an archive of posts with this tag

      © Copyright 2024 Rohan Deb Sarkar • Powered by Jekyll with al-folio theme • Hosted on GitHub Pages • Last updated: 01 Jan 2024
      envelope linkedin github moon sun \ No newline at end of file diff --git a/blog/tag/manik-da/index.html b/blog/tag/manik-da/index.html new file mode 100644 index 000000000000..cf1f8cd2f6bd --- /dev/null +++ b/blog/tag/manik-da/index.html @@ -0,0 +1,17 @@ + manik-da • Rohan Deb Sarkar

      # manik-da

      an archive of posts with this tag

      © Copyright 2024 Rohan Deb Sarkar • Powered by Jekyll with al-folio theme • Hosted on GitHub Pages • Last updated: 01 Jan 2024
      envelope linkedin github moon sun \ No newline at end of file diff --git a/blog/tag/satyajit-ray/index.html b/blog/tag/satyajit-ray/index.html new file mode 100644 index 000000000000..888fa8bbfc1b --- /dev/null +++ b/blog/tag/satyajit-ray/index.html @@ -0,0 +1,17 @@ + satyajit-ray • Rohan Deb Sarkar

      # satyajit-ray

      an archive of posts with this tag

      © Copyright 2024 Rohan Deb Sarkar • Powered by Jekyll with al-folio theme • Hosted on GitHub Pages • Last updated: 01 Jan 2024
      envelope linkedin github moon sun \ No newline at end of file diff --git a/blog/tag/tribute/index.html b/blog/tag/tribute/index.html new file mode 100644 index 000000000000..afc44dccbc87 --- /dev/null +++ b/blog/tag/tribute/index.html @@ -0,0 +1,17 @@ + tribute • Rohan Deb Sarkar

      # tribute

      an archive of posts with this tag

      © Copyright 2024 Rohan Deb Sarkar • Powered by Jekyll with al-folio theme • Hosted on GitHub Pages • Last updated: 01 Jan 2024
      envelope linkedin github moon sun \ No newline at end of file diff --git a/feed.xml b/feed.xml new file mode 100644 index 000000000000..21f2e9e9fd60 --- /dev/null +++ b/feed.xml @@ -0,0 +1 @@ +Jekyll2024-01-01T01:01:15+00:00https://rohandebsarkar.github.io/al-folio/feed.xmlblankRohan Deb Sarkar's portfolio website. Remembering Satyajit Ray on his Birth Centenary2020-05-03T00:00:00+00:002020-05-03T00:00:00+00:00https://rohandebsarkar.github.io/al-folio/blog/2020/remembering-satyajit-ray
      Satyajit Ray
      Satyajit Ray. © Nemai Ghosh

      Satyajit Ray was born on May 2, 1921. The upcoming year we will be celebrating his 100th birthday. He is best known throughout the world as “the greatest film maker of all time”. The Bengali Maestro directed many films throughout his life which has influenced many filmmakers all over the world. His first film “Pather Panchali”, the first movie of the “Apu Triology” is still regarded as one of the best films ever created.

      “Never having seen a Satyajit Ray film is like never having seen the Sun or the Moon” -Akira Kurosawa

      Stayjit Ray was inspired into film making by Vittorio De Sica’s Italian neorealist film “Bicycle Thieves” while he was working for an advertising agency in London. While working in London, Ray watched 99 films and had made his mind for becoming a filmmaker. After returning back to India, Ray decided to make first film on Bibhutibhushan Bandyopadhyay’s novel “Pather Panchali”. While making his first film Ray faced many difficulties, he was repeatedly denied by the producers until Ray decided to make the film with his own money. But soon realised that the amount he had with him was not enough to make a film. He then again approached the producers, this time also they denied him or asked him to change how the film ends. At last Ray approached Government of West Bengal for a loan, who also asked him to modify his script and incorporate a happy ending but Ray denied, ultimately Government of West Bengal provided Ray with the loan. Ray then completed his first film which took him an unusual amount of time of two and a half years for shooting of a film, which we today know as one of the best films ever directed on the planet. “Pather Panchali” was finally released in 1955. It went onto win many international awards from all over the world including the award for The best Human Documentary in 1956 Cannes Film Festival.

      “It is absurd to compare it with any other Indian cinema…. Pather Panchali is pure cinema.” -Times of India

      Satyajit Ray was hugely inspired from Rabindranath Tagore’s works and had said it was because of Tagore, he was acquainted to the Indian and far eastern art.

      “I consider the three years I spent in Santiniketan as the most fruitful of my life …. Santiniketan opened my eyes for the first time to the splendours of Indian and Far Eastern art. Until then I was completely under the sway of Western art, music and literature. Santiniketan made me the combined product of East and West that I am.” -Satyajit Ray

      He was awarded the Honorary Academy Award (Honorary Oscars) as a lifetime achievement award in 1991 by the Academy of Motion Picture Arts and Sciences

      “in recognition of his rare mastery of the art of motion pictures, and of his profound humanitarian outlook, which has had an indelible influence on filmmakers and audiences throughout the world.”

      Satyajit Ray was awarded Dadasaheb Phalke Award in 1985 and Bahrat Ratna in the year 1992. He was also awarded the highest civilian award from France and Yugoslavia, The Legion of Honour and The Yugoslav Star respectively. His films has inspired many. His influences can be observed in many cinemas from Hollywood to Bollywood.

      Although he is well known around the world as “the best filmmaker of all time” but he is also one of the greatest writers of the Bengali Literature and a favourite among the Bengali readers. His characters such as Feluda, a sleuth; Professor Shonku, a scientist; and Tarini Khuro, a traveller; are very popular not only in Bengal but all over India. He was awarded an honorary Doctorate by the Royal College of Arts and a Doctor of Letters form Oxford University for his contributions in literature.

      Ray’s humanitarian works has showed the world the greatness of Bengali cum Indian Cinema. His humanitarian approach towards parallel cinema has gained praise from all over the world.

      Ray said, “He aims to capture both what is unique in the Indian experience and that which is universal.” The Academy Archives started “Satyajit Ray Preservation Project”, after the Horary Oscars was awarded to him. Today, the Academy has 18 feature films and one short film of Satyajit Ray digitally archived and has preserved many more so that they are never lost, as they said it will inspire generations after generations of filmmakers to come. The original film roll of “Pather Panchali” was burnt in an accident, but the burnt original film of “Pather Panchali” was kept in a museum by the Academy for directors to get inspiration from. A video explaining how Satyajit Ray’s films were restored can be viewed here.


      Originally published at rohandebsarkar.blogspot.com on May 3, 2020.

      ]]>
      Rohan Deb Sarkar
      \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 000000000000..a1c9ad320828 --- /dev/null +++ b/index.html @@ -0,0 +1,17 @@ + Rohan Deb Sarkar

      Rohan Deb Sarkar

      Undergarduate physics student at Ramakrishna Mission Vivekananda Centenary College

      Kolkata, West Bengal,
      Union of India

      Hello! this is Rohan Deb Sarkar. Welcome to my website.

      I am currently an undergraduate student at the physics department of Ramakrishna Mission Vivekananda Centenary College, Rahara, Kolkata. While Physics is my major subject, Mathematics and Computer Science are my minor subjects.

      I finished my senior secondary (XII Standard) schooling from International Public School, Kolkata. My major subjects of focus were Physics, Mathematics and Computer Science.

      I am dedicated to science and keen to utilize my knowledge in the best interests of science, humankind, and this planet. My interests include Physics, Computer Science, and a bit of Mathematics.

      I am seeking to research and learn about things that are unknown to me.

      ``I believe in education as a weapon to make this world a better place for everyone.´´
      © Copyright 2024 Rohan Deb Sarkar • Powered by Jekyll with al-folio theme • Hosted on GitHub Pages • Last updated: 01 Jan 2024
      envelope linkedin github moon sun \ No newline at end of file diff --git a/projects/cyclotron/index.html b/projects/cyclotron/index.html new file mode 100644 index 000000000000..55a8cd113f9a --- /dev/null +++ b/projects/cyclotron/index.html @@ -0,0 +1,47 @@ + Cyclotron: A Particle Accelerator • Rohan Deb Sarkar

      Cyclotron: A Particle Accelerator

      A theoretical research based project on Cyclotron: A particle accelerator.

      Cyclotrons are a classification of particle accelerators. Their principal application is to set charged particles into high speed motions, which may even be close to the speed of light and can carry an energy of several billion electron-volts. This form of high energy motion is achieved by subjecting the charged particles into electromagnetic fields and thus accelerating them by applying electromagnetic forces of attraction and repulsion.

      Cyclotron is a classification of an electrodynamic particle accelerator. It accelerates the charged particle outward from the through a spiral trajectory by subjecting the charged particle into a static magnetic field and repeatedly accelerates the particle by a rapidly alternating dynamic electric field. The final energy obtained by the particles are much greater than the impressed voltages on the electrodes.

      Cyclotron was invented by the American scientist Ernest Orlando Lawrence during the years 1929 and 1930, for which he was awarded The Nobel Prize in Physics in 1939. The first working model of cyclotron was constructed in 1931 by American physicist Milton Stanley Livingston at the University of California at Berkeley; it was a 4-inch working model of cyclotron and was able to produce 80,000 eV protons.

      Fig.1 - The first cyclotron
      Fig.1 - The first cyclotron

      Cyclotron was a breakthrough in particle physics, as it was able to accelerate charged particles to a speed that was not possible otherwise. It paved the way for various researches in fields of physics, chemistry, medical sciences, and in other scientific subjects. Cyclotron was used for various important scientific studies such as the discovery of transmutation of atomic nuclei artificially, the discovery of transuranium elements, research for treating cancer cells, and many more.

      Particle Accelerators

      A particle accelerator is a device that is used to propel charged particles to extremely high speed and energies using electromagnetic fields, and to contain them in well-defined beams.

      There are two major classifications of particle accelerators:

      Electrostatic particle accelerators

      Electrostatic particle accelerators use static electric fields to accelerate charged particles to high energy speeds. Electrostatic accelerators accelerate particles by applying static electric potential across the particle. As the particle comes in the electric field of the applied potential the particle experiences a force, which results in the acceleration of the particle.

      Some examples of electrostatic particle accelerators:

      • Cockcroft-Walton accelerator
      • Van de Graaff accelerator

      Electrodynamic particle accelerators

      Electrodynamic particle accelerator uses a dynamic electric field to accelerate charged particles to high energy speeds. These particle accelerators accelerate particles by subjecting them to oscillating electric potentials. Electrodynamic accelerators can accelerate particles to higher energies compared to electrostatic accelerators.

      Some examples of electrodynamic particle accelerators:

      • Linear accelerators
      • Betatron
      • Cyclotron

      Cyclotron: A Particle Accelerator

      Cyclotron accelerates a charged particle to remarkably high energy without the use of high voltage, and thus avoiding the limitations of insulation break-down. The charged particles move in widening semi-circular paths in a uniform magnetic field, crossing back and forth in a vacuum chamber between two D- shaped hollow electrodes in resonance with a rapidly oscillatory electric field. The particles moving in a spiral outward trajectory are accelerated at each traversal of the electric field, attaining a final energy hundreds of times greater than that available from the impressed voltage on the electrodes. This principle of resonance acceleration is termed as “magnetic resonance acceleration” and the technical name for the device is “magnetic resonance accelerator”, which is concisely termed as “cyclotron”.

      Fig.2 - Construction and working of a cyclotron
      Fig.2 - Construction and working of a cyclotron

      The cyclotron principle was proposed in 1930 by Professor Ernest Orlando Lawrence of the University of California. The original idea of accelerating a charged particle in an oscillatory electric field was suggested by a experiment conducted by the Norwegian accelerator physicist Rolf Wideröe in 1928 in which ions of sodium and potassium were accelerated to twice the applied voltage in traversing two tubular electrodes in line between which an oscillatory electric field was applied. The conception of the idea of cyclotron occurred to Lawrence in the library of the University of California in the summer of 1929, when professor Lawrence was browsing through the current journals and read Wideröe’s paper in “Archiv für Elektrotechnik”. The principle of the acceleration in a cyclotron was announced in a short article by professor Lawrence and his graduate student Edlefsen in 1930. Edlefsen, on professor Lawrence’s request, attempted a brief preliminary experimental test of the principle but the experiment was not successful in demonstrating resonance and therefore no experimental results could be reported. Later, professor Lawrence suggested this problem to Livingston, a graduate student at Berkeley, as the subject for an experimental research investigation to demonstrate the validity of the resonance principle. A doctorate thesis by Livingston dated April 14, 1931 reported the results of the experiment. This was the first experimental verification of the principle of cyclotron resonance. For this preliminary study only small-sized laboratory equipment was available, including an electromagnet of 4 inches pole diameter. An illustration from the thesis shows the arrangement of the components.

      Fig.3 - Illustration of the working of one of the first cyclotrons
      Fig.3 - Illustration of the working of one of the first cyclotrons

      Basic Principles of Working of a Cyclotron

      Static magnetic field

      The static magnetic field is produced by a pair of magnets preferably electromagnets. These magnets are aligned horizontally with a specific amount of distance between them which is crucial for the cyclotron to work. It is preferred that the magnets are adjusted in such a manner that the magnetic field produced by the magnets be as uniform as possible. The uniform magnetic field keeps the charged particle or ion in a spiral path while travelling between the hollow D-shaped electrodes. The magnetic field is directed perpendicular to the electric field as a result the ion experiences a Lorentz force perpendicular to the radius of the spiral path and therefore moves in a circular path.

      Dynamic electric field

      The dynamic electric field is implemented using a radio frequency generator which induces an alternating current across the pair of hollow metallic D-shaped electrodes. The frequency of the alternating current is adjusted depending on the frequency of the rotation of the ion inside the D-shaped electrodes. The frequency is very important for the ions to attain maximum energy in the minimum number of turns and is thus called the frequency of that cyclotron. When the electrons travel through the diametral gap between the electrodes, they experience an electrostatic force and thus attain a higher energy. An alternating radio frequency is required to change the direction of the electric field after every half-rotation of the ion across the electrodes. After attaining a higher energy, the ion rotates with a larger radius. This dynamic electric field powers the resonance principle which is the driving power behind the working of a cyclotron.

      Construction of A Cyclotron

      A basic cyclotron works by accelerating charged particles in a spiral path inside the cyclotron inside a pair of electrodes. The electrodes are a pair of hollow semi-circular flat metallic cylinders in the shape of a capital “D” and are thus called “dees”. The charged particles or ions revolve in order to attain a high energy state even with a much lower applied voltage. These dees are so constructed that it is possible to evacuate the air from them during operation as the collisions of the bombarding particles with air molecules greatly decreases the energy of the particles. The electrodes are connected to a radio frequency generator and are placed in a nearly uniform magnetic field. Charged particles are produced by an ion source directly in the centre of the cyclotron between the two electrodes. The dees are located between the poles of electromagnet. The alternating current field applied by the magnet causes the charged ions to revolve inside the dees with increasing velocity and kinetic energy. These dees are connected to a radio frequency generator and are placed in a nearly uniform magnetic field. The magnetic field causes the particle to move in the median plane in approximately circular orbits inside the hollow electrodes and across the gap between them. At each gap, particles are accelerated and, therefore, they follow a spiral path as they gain energy.

      Cyclotron magnets are classically simple in their design features. Most preferably electromagnets are used for their ability of fine tuning the required magnetic field. The magnets are aligned horizontally perpendicular to the electric field. This arrangement powers the resonance principle which is the main principle behind the working of a cyclotron, keeping the charged particle inside the electrodes traveling in a spiral circular path. This helps in accelerating the ion multiple times without requiring large sized particle accelerators.

      The D-shaped electrodes are kept in a chamber, which fits between the poles of the electromagnet. The chamber must be vacuum-tight, which is necessary since without the vacuum the ions will experience resistance from the air molecules when travelling at high velocities, and the chamber is mechanically designed with adequate structural strength to resist distortion when under vacuum. It is constructed of non-magnetic materials to prevent disturbance of the symmetrical magnetic field and are of high electrical conductivity to provide low resistance for the radio frequency currents.

      Fig.4 - Construction of a cyclotron
      Fig.4 - Construction of a cyclotron

      Explanation of Working of a Cyclotron

      There are two forces behind the working of a cyclotron: the dynamic electric field and the static magnetic field. The electric field is provided by the two hollow D-shaped electrodes separated by a diametral gap inside the vacuum chamber, while the magnetic field is produced by the two powerful magnets (preferably electromagnets) located above and below the hollow electrodes. This whole setup is enclosed in a tightly packed vacuum chamber to avoid any loss of energy arising from the friction provided by air resistance.

      This arrangement of the hollow electrodes and the magnets inside the vacuum chamber provides the cyclotron with the characteristic resonance principle. The north pole of the magnet is placed above the electrodes and the south pole is placed below them, therefore the net magnetic field acts across the electrode in the downwards direction. While the electric field acts from the positive electrode to the negative electrode in the region of the diametral gap (since, there is no electric field inside a conductor). The polarity of the electrodes as well as the direction of the electric field changes back and forth due to the alternating current applied to the electrodes.

      The charged particle or the ion which is to be accelerated is ejected near the centre of the vacuum chamber between the electrodes in the region of the diametral gap. As soon as the ion is ejected it is attracted by the oppositely charged electrode at that instant due to the electrostatic forces. The ion accelerates and enters the electrode. The region inside the D-shaped electrode being electric-field-free zone, the ions are not accelerated but are acted upon only by a near uniform magnetic field which forces it to travel in circular orbits in a plane normal to the magnetic field.

      The magnetic field drives the ions to be in a circular path due to the Lorentz force applied due to the presence of the magnetic field and the charge on the ions. The Lorentz force is applied perpendicular to the radius of rotation of the particle as a result the particle moves in a circular path.

      After traversing a semi-circular path, the ions return to the diametral gap between the electrodes and come in the influence of the electric field. For the condition of resonance, the magnetic field is adjusted so the time required for ions to complete a semicircle is equal to the time for reversal of the oscillatory electric field. Therefore, after traversing the first semi-circle the ion experiences another acceleration due to the electrostatic forces, acquiring a higher velocity, and goes onto travel a path of larger radius within the other electrode. As long as the resonance is maintained, the ions are accelerated each time it crosses the diametral gap, travelling in ever-widening semicircles until it reaches the periphery of the electrodes and gets ejected out of the cyclotron with an enormous energy.

      The frequency of the alternating current is very crucial for the charged particles to be in complete phase so that they can attain very high energies with the minimum number of turns. If the frequency of the cyclotron is not fine-tuned for the ion to be in phase the efficiency of the cyclotron decreases drastically.

      Fig.5 - Vector diagram of the forces acting inside the cyclotron on an electron
      Fig.5 - Vector diagram of the forces acting inside the cyclotron on an electron

      Mathematical Explanation of Working of a Cyclotron

      Magnetic Field of a cyclotron

      The magnetic field provides the Lorentz force on the ions, which is equivalent to,

      \[\vec{F}=q(\vec{v}\times\vec{B})\]

      where,
      \(\vec{F}\) represents the magnetic force on the ion;
      \(q\) represents the charge on the ion;
      \(\vec{v}\) represents the velocity of the ion;
      \(\vec{B}\) represents the magnetic field of the cyclotron.

      Because the direction of the force is the cross product between the velocity of the particle and the magnetic field, the Lorentz force is perpendicular to both. Since the accelerated ions travel in a plane normal to the magnetic field, the magnitude of the Lorentz force is,

      \[F=qvB\]

      This magnetic force causes the ion to travel in a circular path, if \(m\) is the mass of the ion and \(r\) is the radius of the circular orbit. Then the centripetal force acting on the ion is,

      \[F=\frac{mv^2}{r}\]

      Comparing the centripetal force with the Lorentz magnetic force, we get,

      \[qvB=\frac{mv^2}{r}\]

      Electric Field of a cyclotron

      The oscillating electric field supplies the force to accelerate the particles to high velocities. As the ions travel in a circular path in a magnetic field, they will cross the gap between the two D-shaped electrodes twice in a revolution, each time receiving an electrostatic force accelerating them to a higher energy.

      The force acting on the particles with charge \(q\) and electric field \(E\) is,

      \[\vec{F_E}=q\vec{E}\]

      Frequency of a cyclotron

      The frequency of revolution \(f\) of the ion in the circular path is,

      \[f=\frac{v}{2\pi r}=\frac{qB}{2\pi m}\]

      This frequency \(f\) is thus constant for a uniform electric field \(B\) as long as the mass \(m\) and charge \(q\) of the ion is constant. Thus, the relation between \(f\) and \(B\) becomes,

      \[f=\left(\frac{1}{2\pi}\times \frac{q}{m}\right)\times B\]

      This linear relation between applied frequency and magnetic field is the fundamental equation of cyclotron resonance. When evaluated for the \(q/m\) values characteristic of light ions, we get

      Ions \(f\)(megacycles)
      protons (\(H^+\)) \(1.52B\)
      deuterons (\(D^+\)) \(0.76B\)
      \(\alpha\)-particle (\(He^{++}\)) \(0.76B\)

      The above relations are plotted in graph to illustrate the range of frequencies required to produce resonant acceleration in magnetic fields up to 20 kilogauss.

      Graph 1 - Demonstrating variation of frequency between various charged particles
      Graph 1 - Demonstrating variation of frequency between various charged particles

      Velocity of an ion in a cyclotron

      Comparing the centripetal force with the Lorentz force, we get,

      \[\frac{mv^2}{r}=qvB\] \[\implies v^2 = qvB \times \frac{r}{m}\] \[\implies v=\sqrt{qvB \times \frac{r}{m}}\]

      Energy of an ion in a cyclotron

      Considering the average potential difference between the two D-shaped electrodes be \(V\). The increment in the kinetic energy (\(\Delta E_K\)) for each traversal through the diametral gap would be,

      \[\Delta E_K = qV\]

      Considering the ion accelerates \(n\) times by passing through the diametral gap, the total kinetic energy (\(E_K\)) processed by the ion during the final rotation would be,

      \[E_K = n \times qV\]

      But, \(n=\left(\frac{f}{2}\right)\)

      \[E_K = \left(\frac{f}{2}\right) \times qV\]

      Considering the velocity of the ion during the final rotation be \(v\), the total kinetic energy (\(E_K\)) processed by the ion would be,

      \[E_K = n \times qV = \frac{1}{2}mv^2\]

      Therefore, the output kinetic energy of the particles expressed in terms of the magnetic field \(B\) and final orbit radius \(R\),

      \[E_K = \frac{q^2B^2R^2}{2m}\]

      Expressing the kinetic energy per unit charge,

      \[\frac{E_K}{q} = \frac{1}{2}\frac{q}{m}B^2R^2\]

      Voltage-Time relation of a cyclotron

      A voltage-time graph of the potential between the electrodes of a cyclotron is shown in the graph. On each traversal of the diametral gap between electrodes the particle will acquire an increment of kinetic energy, \(\Delta E_K = qV\), where \(V\) is the potential difference between the two electrodes. The magnitude of the increment is determined by the phase of crossing the gap. Since, the particles will be moving in opposite directions in successive passages through the diametral gap, so the kinetic energy increments are cumulative. Distinct phases of resonance are plotted on the graph (\(points - 1, 2, 3, 4 ...\)), a resonant particle crossing at the phase of peak field (\(point - 1\)) will reach maximum energy in the minimum number of turns. While the ions crossing at other phases (\(points - 2, 3, 4 ...\)), will acquire energy in smaller increments but will remain in resonance for a larger number of turns to reach the maximum energy.

      Graph 2 - Voltage-time relation of a cyclotron
      Graph 2 - Voltage-time relation of a cyclotron

      Advantages of Cyclotrons

      Cyclotron was a huge improvement over the previous generation particle accelerators for several reasons:

      • Cyclotron uses the resonance principle for accelerating the charged particles. For this reason, it was a huge cost-effective option as it could make use of the same electric field again and again to accelerate the particle into high energies instead of accelerating the particle in a straight line through a evacuated tube.
      • It was also a very good space effective option as it did not require large space as required by the linear accelerators.
      • With cyclotrons it was for the first time possible to attain particles with tremendous high energies by only applying a small potential difference across the electrodes.
      • It provided a compact design for particle accelerators by accelerating the particle in a spiral path. Before cyclotrons, particle accelerators were very bulky and inefficient.

      Limitations of Cyclotrons

      When professor Lawrence invented the cyclotron, he did not consider the relativistic consequences. He assumed the spiral path of the particle inside the cyclotron was in accordance with Newton’s laws of motion. If the particles acquire enough energy so to become sufficiently fast that the relativistic effects become more important then the desired results are not obtained. At high velocities, the mass of the particle increases according to the given formula,

      \[m=\frac{m_0}{\sqrt{1-\frac{v^2}{c^2}}}\]

      where,
      \(m\) represents the mass of the particle at the instant when velocity is \(v\);
      \(m_0\) represents the rest mass of the particle;
      \(c\) represents the speed of light.

      This change in mass largely affects the performance of the cyclotron. Apart from the relativistic consequences, cyclotrons are also unable to accelerate electrons because they have very low mass and get energised rapidly. The velocity of the cyclotron increases to such a great extent that the electron will be thrown out of the step with the oscillating field.

      Modifications of Cyclotron

      In order to correct the relativistic limitations of a cyclotron some adjustments are made to the original design of the cyclotron by Professor Lawrence. The following are some special types of cyclotron classified based on the adjustments made to the original design.

      The adjustments were made using the adjustment factor \(\gamma\),

      \[\gamma = \frac{1}{\sqrt{1-\frac{v^2}{c^2}}}\]

      Synchrocyclotron

      Instead of a constant frequency in an original cyclotron, the frequency of the RF electric field in a synchrocyclotron is varied to compensate for the relativistic effects on the mass of the particles as its velocity approaches the speed of light.

      The frequency is adjusted using the following equation,

      \[f=\frac{f_0}{\gamma}\]

      where,
      \(f\) represents the frequency of the synchrocyclotron;
      \(f_0\) represents the frequency of the non-adjusted cyclotron;
      \(\gamma\) represents the Lorentz factor.

      Isochronous cyclotron

      Isochronous cyclotron is an alternative to the synchrocyclotron, in this design the magnetic field increases with the radius. Isochronous cyclotrons can produce particles with much greater velocity compared to synchrocyclotrons.

      The magnetic field is adjusted using the following equation,

      \[B=\gamma B_0\]

      where,
      \(B\) represents the magnetic field of the isochronous cyclotron;
      \(B_0\) represents the magnetic field of the non-adjusted cyclotron;
      \(\gamma\) represents the Lorentz factor.

      Conclusion

      Cyclotron was invented in 1930 by Ernest Orlando Lawrence. It revolutionised the way particle accelerators worked. It provided a very efficient design for accelerating charged particles to very high speeds with a fraction of voltage applied across electrodes. The circular design of the cyclotron made it very compact. Cyclotrons are preferred over other cyclotrons for its efficiency.

      Before cyclotrons, charged particles were accelerated mostly using linear particle accelerators. Linear particle accelerators used multiple electric fields to accelerate the particles making the design very bulky. Cyclotron solved this problem by giving a compact circular design which was able to accelerate particles to high velocity by accelerating them in the same electric field repeatedly.

      The cyclotron resonance principle worked with the help of a static magnetic field and an alternating electric field. The static magnetic field keeps the charged particle in its orbit inside the electrodes, whereas the alternating current across the electrodes is used to accelerate the particles by revolving them in a spiral trajectory of increasing radius. The particle keeps on gaining energy and therefore increases its radius every time there is an increase in its velocity. Ultimately when the radius of its trajectory becomes equal to the radius of the cyclotron it is ejected as a beam of very high current.

      Though cyclotron was a huge improvement over its predecessors, it still had some drawbacks. The design of cyclotron did not consider the relativistic effects of high velocity in the mass of the particles. Therefore, later some adjustments were made to cancel the relativistic effects.

      Cyclotron paved a way for a new generation of particle accelerators. It solved many problems associated with previous accelerators. It revolutionised the way particle accelerators worked by putting forward the resonance principle.


      Bibliography

      • Livingston, M. Stanley, and John P. Blewett. “Particle Accelerators Mc Graw-Hill Book Company.” INC, NY (1962).

      • Lawrence, Ernest O. “Method and apparatus for the acceleration of ions.” U.S. Patent No. 1,948,384. 20 Feb. 1934.

      • Lawrence, Ernest O. “The evolution of the cyclotron.” Nobel Lecture (1951).

      • Lawrence, Ernest O., and M. Stanley Livingston. “The production of high speed light ions without the use of high voltages.” Physical Review 40.1 (1932): 19.

      • Sayre, Joseph G. “The Cyclotron.” Ohio State Engineer, vol. 26, no. 5 (April, 1943), 11-12, 18.

      © Copyright 2024 Rohan Deb Sarkar • Powered by Jekyll with al-folio theme • Hosted on GitHub Pages • Last updated: 01 Jan 2024
      \ No newline at end of file diff --git a/projects/index.html b/projects/index.html new file mode 100644 index 000000000000..96a4f22c9481 --- /dev/null +++ b/projects/index.html @@ -0,0 +1,17 @@ + Projects • Rohan Deb Sarkar

      Projects

      © Copyright 2024 Rohan Deb Sarkar • Powered by Jekyll with al-folio theme • Hosted on GitHub Pages • Last updated: 01 Jan 2024
      envelope linkedin github moon sun \ No newline at end of file diff --git a/resume/index.html b/resume/index.html new file mode 100644 index 000000000000..5131a0d1870c --- /dev/null +++ b/resume/index.html @@ -0,0 +1,17 @@ + Résumé • Rohan Deb Sarkar

      Résumé [pdf]

      General Information

      First Name Rohan Deb
      Last Name Sarkar
      Known Languages বাংলা (Bangla), English

      Education

      Scholarships

      Honors and Awards

      • Jan 2020
        Appreciation Letter
        Minister of Science & Technology, Govt. of India
        • For participation as a student in the Guinness World Record for the “Largest astrophysics lesson” on the “applications of spectroscopy in astrophysics”.

      Other Interests

      • Hobbies
        • Coding and learning new programming languages.
        • Surfing the internet to research on various topis of my interests.
        • Contributing to various open source projects.
        • Politics.
      © Copyright 2024 Rohan Deb Sarkar • Powered by Jekyll with al-folio theme • Hosted on GitHub Pages • Last updated: 01 Jan 2024
      envelope linkedin github moon sun \ No newline at end of file diff --git a/robots.txt b/robots.txt index a450fbe28faa..c2c9df8d3635 100644 --- a/robots.txt +++ b/robots.txt @@ -1,7 +1,4 @@ ---- -permalink: /robots.txt ---- User-agent: * Disallow: -Sitemap: {{ site.baseurl | prepend: site.url }}/sitemap.xml +Sitemap: https://rohandebsarkar.github.io/al-folio/sitemap.xml diff --git a/sitemap.txt b/sitemap.txt index bef17a2d7a7e..46a36c31365d 100644 --- a/sitemap.txt +++ b/sitemap.txt @@ -1,17 +1,10 @@ ---- -permalink: /sitemap.txt ---- - -{% for page in site.pages -%} -{% if page.title and page.permalink != '/404.html' -%} -{{ page.url | absolute_url | remove: 'index.html' }} -{% endif -%} -{% endfor -%} - -{% for post in site.posts -%} -{{ post.url | absolute_url | remove: 'index.html' }} -{% endfor -%} - -{% for project in site.projects -%} -{{ project.url | absolute_url | remove: 'index.html' }} -{% endfor -%} \ No newline at end of file +https://rohandebsarkar.github.io/al-folio/ +https://rohandebsarkar.github.io/al-folio/projects/ +https://rohandebsarkar.github.io/al-folio/resume/ +https://rohandebsarkar.github.io/al-folio/blog/tag/satyajit-ray/ +https://rohandebsarkar.github.io/al-folio/blog/tag/manik-da/ +https://rohandebsarkar.github.io/al-folio/blog/tag/birth-centenary/ +https://rohandebsarkar.github.io/al-folio/blog/tag/tribute/ +https://rohandebsarkar.github.io/al-folio/blog/ +https://rohandebsarkar.github.io/al-folio/blog/2020/remembering-satyajit-ray/ +https://rohandebsarkar.github.io/al-folio/projects/cyclotron/ diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 000000000000..a8417eb45417 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,38 @@ + + + +https://rohandebsarkar.github.io/al-folio/blog/2020/remembering-satyajit-ray/ +2020-05-03T00:00:00+00:00 + + +https://rohandebsarkar.github.io/al-folio/projects/cyclotron/ +2021-05-22T00:00:00+00:00 + + +https://rohandebsarkar.github.io/al-folio/ + + +https://rohandebsarkar.github.io/al-folio/projects/ + + +https://rohandebsarkar.github.io/al-folio/resume/ + + +https://rohandebsarkar.github.io/al-folio/blog/tag/satyajit-ray/ + + +https://rohandebsarkar.github.io/al-folio/blog/tag/manik-da/ + + +https://rohandebsarkar.github.io/al-folio/blog/tag/birth-centenary/ + + +https://rohandebsarkar.github.io/al-folio/blog/tag/tribute/ + + +https://rohandebsarkar.github.io/al-folio/blog/2020/ + + +https://rohandebsarkar.github.io/al-folio/blog/ + +