`s, which have `min-width: 0;` by default.
+ // So we reset that to ensure fieldsets behave more like a standard block element.
+ // See https://github.com/twbs/bootstrap/issues/12359
+ // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements
+ min-width: 0;
+ // Reset the default outline behavior of fieldsets so they don't affect page layout.
+ padding: 0;
+ margin: 0;
+ border: 0;
+}
+
+// 1. Correct the text wrapping in Edge and IE.
+// 2. Correct the color inheritance from `fieldset` elements in IE.
+legend {
+ display: block;
+ width: 100%;
+ max-width: 100%; // 1
+ padding: 0;
+ margin-bottom: .5rem;
+ font-size: 1.5rem;
+ line-height: inherit;
+ color: inherit; // 2
+ white-space: normal; // 1
+}
+
+progress {
+ vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.
+}
+
+// Correct the cursor style of increment and decrement buttons in Chrome.
+[type="number"]::-webkit-inner-spin-button,
+[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+[type="search"] {
+ // This overrides the extra rounded corners on search inputs in iOS so that our
+ // `.form-control` class can properly style them. Note that this cannot simply
+ // be added to `.form-control` as it's not specific enough. For details, see
+ // https://github.com/twbs/bootstrap/issues/11586.
+ outline-offset: -2px; // 2. Correct the outline style in Safari.
+ -webkit-appearance: none;
+}
+
+//
+// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
+//
+
+[type="search"]::-webkit-search-cancel-button,
+[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+//
+// 1. Correct the inability to style clickable types in iOS and Safari.
+// 2. Change font properties to `inherit` in Safari.
+//
+
+::-webkit-file-upload-button {
+ font: inherit; // 2
+ -webkit-appearance: button; // 1
+}
+
+//
+// Correct element displays
+//
+
+output {
+ display: inline-block;
+}
+
+summary {
+ display: list-item; // Add the correct display in all browsers
+}
+
+template {
+ display: none; // Add the correct display in IE
+}
+
+// Always hide an element with the `hidden` HTML attribute (from PureCSS).
+// Needed for proper display in IE 10-.
+[hidden] {
+ display: none !important;
+}
diff --git a/_sass/_spinner.scss b/_sass/_spinner.scss
new file mode 100644
index 0000000..a886a85
--- /dev/null
+++ b/_sass/_spinner.scss
@@ -0,0 +1,45 @@
+// Copyright (c) 2019 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+.loading > [class*="icon-"] {
+ display: inline-block;
+ -webkit-animation: rotate 2s infinite linear both;
+ animation: rotate 2s infinite linear both;
+ -webkit-transform-origin: 50% 50%;
+ -ms-transform-origin: 50% 50%;
+ transform-origin: 50% 50%;
+}
+
+@-webkit-keyframes rotate {
+ 0% {
+ -webkit-transform: rotateZ(0);
+ transform: rotateZ(0);
+ }
+ 100% {
+ -webkit-transform: rotateZ(360deg);
+ transform: rotateZ(360deg);
+ }
+}
+
+@keyframes rotate {
+ 0% {
+ -webkit-transform: rotateZ(0);
+ transform: rotateZ(0);
+ }
+ 100% {
+ -webkit-transform: rotateZ(360deg);
+ transform: rotateZ(360deg);
+ }
+}
diff --git a/_sass/_syntax.scss b/_sass/_syntax.scss
new file mode 100644
index 0000000..ad169d0
--- /dev/null
+++ b/_sass/_syntax.scss
@@ -0,0 +1,143 @@
+@mixin lightmode-syntax() {
+ .highlight,
+ pre.highlight {
+ // background: #fafafa;
+ color: #383a42;
+ }
+ // .highlight pre {
+ // background: #fafafa;
+ // }
+ .highlight .ge {
+ font-style: italic;
+ }
+ .highlight .gs {
+ font-weight: 700;
+ }
+ .highlight .ow {
+ font-weight: 700;
+ }
+ .highlight .n,
+ .highlight .nf,
+ .highlight .nn,
+ .highlight .o,
+ .highlight .p {
+ color: #383a42;
+ }
+ .highlight .c,
+ .highlight .c1,
+ .highlight .cm,
+ .highlight .cp,
+ .highlight .cs {
+ color: #a0a1a7;
+ font-style: italic;
+ }
+ .highlight .sr,
+ .highlight .ss {
+ color: #0184bc;
+ }
+ .highlight .k,
+ .highlight .kc,
+ .highlight .kd,
+ .highlight .kn,
+ .highlight .kp,
+ .highlight .kr,
+ .highlight .kt {
+ color: #a626a4;
+ }
+ .highlight .l,
+ .highlight .ld,
+ .highlight .s,
+ .highlight .s1,
+ .highlight .s2,
+ .highlight .sb,
+ .highlight .sc,
+ .highlight .sd,
+ .highlight .se,
+ .highlight .sh,
+ .highlight .si,
+ .highlight .sx {
+ color: #50a14f;
+ }
+ .highlight .nt,
+ .highlight .nx,
+ .highlight .vi {
+ color: #e45649;
+ }
+ .highlight .il,
+ .highlight .m,
+ .highlight .mf,
+ .highlight .mh,
+ .highlight .mi,
+ .highlight .mo,
+ .highlight .na {
+ color: #986801;
+ }
+ .highlight .bp,
+ .highlight .nb,
+ .highlight .nc,
+ .highlight .nd,
+ .highlight .ne,
+ .highlight .ni,
+ .highlight .nl,
+ .highlight .no,
+ .highlight .nv,
+ .highlight .py,
+ .highlight .vc,
+ .highlight .vg {
+ color: #c18401;
+ }
+ // .highlight .err {
+ // color: #fff;
+ // background-color: #ff1414;
+ // }
+ .highlight .gd {
+ color: #ff1414;
+ }
+ .highlight .gi {
+ color: #2db448;
+ }
+ .highlight .w {
+ color: #f8f8f2;
+ }
+ .highlight .cpf {
+ color: navy;
+ }
+ .highlight .gu {
+ color: #75715e;
+ }
+ .highlight .lineno {
+ color: #9d9d9f;
+ user-select: none;
+ }
+ .highlight .ln {
+ color: #9d9d9f;
+ user-select: none;
+ }
+ .highlight .ln:after {
+ content: " ";
+ }
+ .highlight .hll {
+ color: #383a42;
+ background-color: #e5e5e6;
+ }
+ .highlight .hl {
+ color: #383a42;
+ background-color: #e5e5e6;
+ }
+ .highlight .language-json .w + .s2 {
+ color: #e45649;
+ }
+ .highlight .language-json .kc {
+ color: #0184bc;
+ }
+}
+
+body {
+ @include lightmode-syntax();
+}
+
+@media screen {
+ body.light-mode {
+ @include lightmode-syntax();
+ }
+}
diff --git a/_sass/_tippy.scss b/_sass/_tippy.scss
new file mode 100644
index 0000000..799983f
--- /dev/null
+++ b/_sass/_tippy.scss
@@ -0,0 +1,43 @@
+
+@use "tippyjs/index" with ($namespace-prefix: "tippy");
+
+[data-tippy-root] {
+ --body-color: var(--inv-body-color);
+ --body-bg: var(--inv-body-bg);
+}
+
+.tippy-box {
+ color: var(--body-color)!important;
+ background-color: var(--body-bg)!important;
+}
+
+.tippy-content {
+ font-family: $font-family!important;
+ font-weight: normal!important;
+ a {
+ @extend .heading;
+ text-decoration: none;
+ border: none;
+ &:after {
+ color: var(--body-color)!important;
+ }
+ }
+}
+
+.tippy-arrow {
+ color: var(--body-bg)!important;
+}
+
+.dark-mode {
+ .tippy-content {
+ -webkit-font-smoothing: initial;
+ -moz-osx-font-smoothing: initial;
+ }
+}
+
+.light-mode {
+ .tippy-content {
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ }
+}
diff --git a/_sass/_variables.scss b/_sass/_variables.scss
new file mode 100644
index 0000000..131c29b
--- /dev/null
+++ b/_sass/_variables.scss
@@ -0,0 +1,22 @@
+// Copyright (c) 2019 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+$gray: #777;
+$gray-bg: rgba(0,0,0,.025);
+$gray-text: #666;
+$menu-text: #bbb;
+$body-color: #333;
+$body-bg: #fff;
+$border-color: #ebebeb;
diff --git a/_sass/html.scss b/_sass/html.scss
new file mode 100644
index 0000000..d7f88fd
--- /dev/null
+++ b/_sass/html.scss
@@ -0,0 +1,34 @@
+html {
+ --font-family: #{$font-family};
+ --font-family-heading: #{$font-family-heading};
+ --code-font-family: #{$code-font-family};
+
+ --root-font-size: #{$root-font-size};
+ --root-font-size-medium: #{$root-font-size-medium};
+ --root-font-size-large: #{$root-font-size-large};
+ --root-font-size-print: #{$root-font-size-print};
+ --root-line-height: #{$root-line-height};
+
+ --font-weight: #{$font-weight};
+ --font-weight-bold: #{$font-weight-bold};
+ --font-weight-heading: #{$font-weight-heading};
+
+ // --content-width: #{$content-width};
+ // --content-width-2: #{$content-width-2};
+ --content-width-5: #{$content-width-5};
+
+ // --content-margin-3: #{$content-margin-3};
+ --content-margin-5: #{$content-margin-5};
+
+ --sidebar-width: #{$sidebar-width};
+ --half-content: #{$half-content};
+
+ // --break-point-1: #{$break-point-1};
+ // --break-point-2: #{$break-point-2};
+ --break-point-3: #{$break-point-3};
+ // --break-point-4: #{$break-point-4};
+ --break-point-5: #{$break-point-5};
+ // --break-point-font-large: #{$break-point-font-large};
+
+ --break-point-dynamic: #{$break-point-dynamic};
+}
diff --git a/_sass/my-inline.scss b/_sass/my-inline.scss
new file mode 100644
index 0000000..6dc95db
--- /dev/null
+++ b/_sass/my-inline.scss
@@ -0,0 +1,2 @@
+// Uncomment to disable dingbat icons below posts
+// hr.dingbat { display: none }
\ No newline at end of file
diff --git a/_sass/my-style.scss b/_sass/my-style.scss
new file mode 100644
index 0000000..470f851
--- /dev/null
+++ b/_sass/my-style.scss
@@ -0,0 +1,13 @@
+.layout-post {
+ .img-wrapper {
+ img {
+ max-width: 100%;
+ height: auto;
+ }
+ }
+}
+
+.avatar {
+ width: 150px;
+ height: auto;
+}
diff --git a/_sass/my-variables.scss b/_sass/my-variables.scss
new file mode 100644
index 0000000..e9ed70b
--- /dev/null
+++ b/_sass/my-variables.scss
@@ -0,0 +1 @@
+// This is deprecated. Modify CSS Custom Properties instead.
diff --git a/_sass/pivoine/__inline__/_avatar.scss b/_sass/pivoine/__inline__/_avatar.scss
new file mode 100644
index 0000000..cf80bba
--- /dev/null
+++ b/_sass/pivoine/__inline__/_avatar.scss
@@ -0,0 +1,51 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_avatar.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+.avatar {
+
+ width: 7rem;
+ height: 7rem;
+ overflow: hidden;
+ display: inline-block;
+
+
+
+
+
+ img { width: 100%; }
+
+}
+
+
+.content .avatar {
+ @extend .color-transition;
+ float: right;
+ box-sizing: content-box;
+ border: 1rem solid var(--body-bg);
+ transition: border-color 1s ease;
+ margin-top: -1.5rem;
+ margin-right: -1rem;
+ border-radius: 100%;
+}
+
diff --git a/_sass/pivoine/__inline__/_base.scss b/_sass/pivoine/__inline__/_base.scss
new file mode 100644
index 0000000..60a0f47
--- /dev/null
+++ b/_sass/pivoine/__inline__/_base.scss
@@ -0,0 +1,78 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_base.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2021 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
+
+body::before {
+ @media screen {
+ content: '';
+ width: .5rem;
+ background: var(--gray-bg);
+ position: fixed;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ }
+
+ @media (min-width: $break-point-3) {
+ width: $sidebar-width;
+ }
+
+ @media (min-width: $break-point-dynamic) {
+ width: calc(50% - #{$half-content});
+ }
+}
+
+html {
+ @media screen and (min-width: $break-point-1) {
+ font-size: var(--root-font-size-medium);
+ }
+
+ @media screen and (min-width: $break-point-font-large) {
+ font-size: var(--root-font-size-large);
+ }
+}
+
+#breadcrumbs {
+ > ul {
+ @extend .ellipsis;
+ height: 1rem;
+ margin: -1.5rem 0 .5rem;
+ padding: 0;
+ font-size: .667rem;
+ color: var(--menu-text);
+ text-transform: uppercase;
+ width: 100%;
+ list-style: none;
+ > li {
+ display: inline;
+ a {
+ color: var(--gray);
+ text-decoration: none;
+ border-bottom: none;
+ }
+ }
+ }
+}
+
diff --git a/_sass/pivoine/__inline__/_break-layout.scss b/_sass/pivoine/__inline__/_break-layout.scss
new file mode 100644
index 0000000..845276c
--- /dev/null
+++ b/_sass/pivoine/__inline__/_break-layout.scss
@@ -0,0 +1,25 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_break-layout.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
diff --git a/_sass/pivoine/__inline__/_content.scss b/_sass/pivoine/__inline__/_content.scss
new file mode 100644
index 0000000..25b7253
--- /dev/null
+++ b/_sass/pivoine/__inline__/_content.scss
@@ -0,0 +1,69 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_content.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+.content {
+
+ margin-left: auto;
+ margin-right: auto;
+ padding: 8rem $content-padding 12rem;
+
+ @media screen {
+ padding-left: $content-padding + .5rem;
+ min-height: 100vh;
+ }
+
+ @media screen and (min-width: $break-point-1) {
+ max-width: $content-width;
+ }
+
+ @media screen and (min-width: $break-point-2) {
+ max-width: $content-width-2;
+ }
+
+ @media screen and (min-width: $break-point-3) {
+ padding-left: $content-padding;
+ margin-left: $sidebar-width + $content-margin-3;
+ margin-right: $content-margin-3;
+ }
+
+ @media screen and (min-width: $break-point-5) {
+ padding-top: 9rem;
+ margin-left: $sidebar-width + $content-margin-5;
+ margin-right: $content-margin-5;
+ max-width: $content-width-5;
+ }
+
+ @media screen and (min-width: $break-point-dynamic) {
+ margin: auto;
+ }
+
+
+}
+
+.large-only {
+ display: none;
+ @media screen and (min-width: $break-point-dynamic) {
+ display: block;
+ }
+}
diff --git a/_sass/pivoine/__inline__/_footer.scss b/_sass/pivoine/__inline__/_footer.scss
new file mode 100644
index 0000000..e3f8367
--- /dev/null
+++ b/_sass/pivoine/__inline__/_footer.scss
@@ -0,0 +1,25 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_footer.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
diff --git a/_sass/pivoine/__inline__/_images.scss b/_sass/pivoine/__inline__/_images.scss
new file mode 100644
index 0000000..5ba1ba3
--- /dev/null
+++ b/_sass/pivoine/__inline__/_images.scss
@@ -0,0 +1,37 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_images.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+.content .aspect-ratio {
+ overflow: hidden;
+ img {
+ margin: 0;
+ width: 100%;
+ height: 100%;
+// object-fit: cover;
+// object-position: center;
+ background-color: var(--gray-bg);
+ }
+}
+
+
diff --git a/_sass/pivoine/__inline__/_katex.scss b/_sass/pivoine/__inline__/_katex.scss
new file mode 100644
index 0000000..a3a4ba7
--- /dev/null
+++ b/_sass/pivoine/__inline__/_katex.scss
@@ -0,0 +1,25 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_katex.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
diff --git a/_sass/pivoine/__inline__/_links.scss b/_sass/pivoine/__inline__/_links.scss
new file mode 100644
index 0000000..f3f14eb
--- /dev/null
+++ b/_sass/pivoine/__inline__/_links.scss
@@ -0,0 +1,60 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_links.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+hy-push-state a {
+ color: var(--body-color);
+
+ @supports not ((text-decoration-thickness: initial) and (text-underline-offset: initial)) {
+ text-decoration: none;
+ border-bottom: 2px solid;
+ }
+
+ @supports ((text-decoration-thickness: initial) and (text-underline-offset: initial)) {
+ text-decoration-style: solid;
+ text-underline-offset: .35rem;
+ text-decoration-thickness: 2px;
+ }
+
+
+
+
+
+ &.no-hover {
+ border-bottom: none;
+ text-decoration-thickness: unset;
+ text-underline-offset: unset;
+ }
+
+}
+
+.content a:not(.btn):not(.no-hover) {
+
+ @supports ((text-decoration-thickness: initial) and (text-underline-offset: initial)) {
+ text-decoration-color: var(--accent-color-faded);
+ }
+ & { border-color: var(--accent-color-faded); }
+
+
+}
+
diff --git a/_sass/pivoine/__inline__/_mark-external.scss b/_sass/pivoine/__inline__/_mark-external.scss
new file mode 100644
index 0000000..20aaf5c
--- /dev/null
+++ b/_sass/pivoine/__inline__/_mark-external.scss
@@ -0,0 +1,25 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_mark-external.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
diff --git a/_sass/pivoine/__inline__/_menu.scss b/_sass/pivoine/__inline__/_menu.scss
new file mode 100644
index 0000000..b623a43
--- /dev/null
+++ b/_sass/pivoine/__inline__/_menu.scss
@@ -0,0 +1,96 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_menu.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+$navbar-height: 5rem;
+
+
+.fixed-common {
+ position: fixed;
+ left: 0;
+ width: 100%;
+ z-index: 2;
+}
+
+.fixed-top {
+ @extend .fixed-common;
+ top: 0;
+}
+
+.fixed-bottom {
+ @extend .fixed-common;
+ bottom: 0;
+}
+
+
+.navbar {
+ @extend .color-transition;
+ > .content {
+
+ position: relative;
+ padding-top: 0;
+ padding-bottom: 0;
+ min-height: 0;
+ max-height: $navbar-height;
+
+
+
+ }
+
+
+}
+
+
+.nav-btn-bar {
+ @extend .color-transition;
+ margin: 0 -1rem;
+ background-color: white; // IE11
+ background-color: var(--body-bg);
+ height: $navbar-height;
+ display: flex;
+ align-items: center;
+ position: relative;
+
+ > :first-child, > :last-child {
+ border: none;
+ }
+}
+
+.nav-btn {
+ @extend .color-transition;
+ background: none;
+ border: none;
+ text-decoration: none;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 3.25rem;
+ height: $navbar-height;
+ color: var(--menu-text);
+ border-right: 1px solid var(--border-color);
+ border-left: 1px solid var(--border-color);
+ margin-left: -1px;
+}
+
+
+
diff --git a/_sass/pivoine/__inline__/_search.scss b/_sass/pivoine/__inline__/_search.scss
new file mode 100644
index 0000000..456a632
--- /dev/null
+++ b/_sass/pivoine/__inline__/_search.scss
@@ -0,0 +1,36 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_search.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+hm-search {
+ display: flex;
+ flex-grow: 1;
+ padding: 1em;
+ position: relative;
+ overflow: hidden;
+ @media screen {
+
+ }
+}
+
+
diff --git a/_sass/pivoine/__inline__/_sidebar.scss b/_sass/pivoine/__inline__/_sidebar.scss
new file mode 100644
index 0000000..6dfbc09
--- /dev/null
+++ b/_sass/pivoine/__inline__/_sidebar.scss
@@ -0,0 +1,184 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_sidebar.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+hy-drawer {
+ width: 100%;
+ position: relative;
+ overflow: hidden;
+ display: block;
+ z-index: 4;
+ @media screen {
+
+ }
+
+ @media screen and (min-width: $break-point-3) {
+
+ position: fixed;
+ width: $sidebar-width;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ margin-left: 0;
+
+ &.cover {
+ position: relative;
+ width: 100%;
+ }
+
+
+
+ }
+
+ @media screen and (min-width: $break-point-dynamic) {
+ width: calc(50% - #{$half-content});
+
+
+ }
+
+
+}
+
+.sidebar {
+
+ position: relative;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ color: rgba(255, 255, 255, .75);
+ text-align: center;
+ min-height: 100vh;
+ &.invert { color: rgba(32, 32, 32, .75) }
+
+
+ a {
+
+ color: #fff;
+ border-bottom-color: rgba(255, 255, 255, 0.2);
+ text-decoration-color: rgba(255, 255, 255, 0.2);
+
+
+ }
+
+ &.invert a {
+
+ color: #222;
+ border-bottom-color: rgba(32, 32, 32, 0.2);
+ text-decoration-color: rgba(32, 32, 32, 0.2);
+
+
+ }
+}
+
+
+
+.sidebar-bg {
+
+ position: absolute;
+ top: 0;
+ left: calc(50% - 50vw);
+ width: 100vw;
+ height: 100%;
+ background: #202020 center / cover;
+
+ &::after {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ background: rgba(0, 0, 0, 0.05);
+ }
+
+
+ &.sidebar-overlay::after {
+// background: -moz-linear-gradient(top, rgba(32,32,32,0) 0%, rgba(32,32,32,0.5) 50%, rgba(32,32,32,0) 100%);
+// background: -webkit-linear-gradient(top, rgba(32,32,32,0) 0%,rgba(32,32,32,0.5) 50%, rgba(32,32,32,0) 100%);
+ background: linear-gradient(to bottom, rgba(32,32,32,0) 0%,rgba(32,32,32,0.5) 50%, rgba(32,32,32,0) 100%);
+ }
+}
+
+
+.sidebar-sticky {
+ position: relative;
+ z-index: 3;
+ max-width: $sidebar-width;
+ padding: 1.5rem;
+ contain: content;
+}
+
+.sidebar-about {
+ .avatar {
+ margin-bottom: 1.5rem
+ }
+
+ > a.sidebar-title {
+ text-decoration: none;
+ > h2 {
+ margin: 0;
+ padding-bottom: .5rem;
+ }
+
+ &::after {
+ content: '';
+ display: block;
+ border-bottom: 2px solid;
+ margin: 0 auto .5rem;
+ width: 4rem;
+ border-color: rgba(255, 255, 255, 0.2);
+ transition: border-color 250ms;
+ }
+
+ &:hover::after {
+ border-color: rgba(255, 255, 255, 1);
+ transition: border-color 50ms;
+ }
+ }
+}
+
+.sidebar.invert .sidebar-about > a.sidebar-title{
+ &::after { border-color: rgba(32, 32, 32, 0.2) }
+ &:hover::after { border-color: #222 }
+}
+
+.sidebar-nav > ul {
+ list-style: none;
+ padding-left: 0;
+}
+
+.sidebar-nav-item {
+ @extend .f4;
+ display: inline-block;
+ margin-bottom: .5rem;
+}
+
+#_main.no-drawer {
+ @media (min-width: $break-point-3) {
+ #_menu { display: none }
+ .nav-btn-bar > :nth-child(2) { border: none }
+ }
+}
+
+
+
diff --git a/_sass/pivoine/__inline__/_social.scss b/_sass/pivoine/__inline__/_social.scss
new file mode 100644
index 0000000..a3fc711
--- /dev/null
+++ b/_sass/pivoine/__inline__/_social.scss
@@ -0,0 +1,61 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_social.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
+.sidebar-social {
+ &::after {
+ @extend .clearfix
+ }
+
+ > ul {
+ display: inline-block;
+ list-style: none;
+ padding-left: 0;
+ margin-bottom: 0;
+
+ > li {
+ float: left;
+
+ > a {
+ display: inline-block;
+ text-align: center;
+ font-size: 1.4rem;
+ width: 3rem;
+ height: 4rem;
+ padding: .5rem 0;
+ line-height: 4rem - 2 * .5rem;
+ text-decoration: none;
+ border-bottom-width: 2px;
+ border-bottom-style: solid;
+ }
+ }
+
+ li + li {
+ margin-top: 0;
+ }
+ }
+}
+
+
+
diff --git a/_sass/pivoine/__inline__/_sound.scss b/_sass/pivoine/__inline__/_sound.scss
new file mode 100644
index 0000000..4c35184
--- /dev/null
+++ b/_sass/pivoine/__inline__/_sound.scss
@@ -0,0 +1,25 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_sound.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
diff --git a/_sass/pivoine/__inline__/_toc.scss b/_sass/pivoine/__inline__/_toc.scss
new file mode 100644
index 0000000..4174d56
--- /dev/null
+++ b/_sass/pivoine/__inline__/_toc.scss
@@ -0,0 +1,55 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_toc.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2020 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+#markdown-toc {
+
+ @extend .note-sm;
+ margin: 2rem -1rem 2rem calc(-1rem + 1px);
+ padding-left: 2.5rem;
+ padding-bottom: .5rem;
+
+// transition: opacity 300ms ease, transform 300ms ease, border-color 1s ease;
+ &:before { left: 1rem; }
+}
+
+body:not(.no-toc) #markdown-toc {
+ @media screen and (min-width: $break-point-dynamic) {
+
+ position: absolute;
+ z-index: 4;
+ width: 20.5rem;
+ right: 0;
+ margin: auto;
+ overflow: auto;
+
+
+ }
+}
+
+
+body.no-break-layout:not(.no-toc) #markdown-toc {
+ @media screen and (min-width: $break-point-dynamic) {
+ width: calc(50% - #{$half-content});
+ }
+}
diff --git a/_sass/pivoine/__inline__/_utilities.scss b/_sass/pivoine/__inline__/_utilities.scss
new file mode 100644
index 0000000..8f52ab3
--- /dev/null
+++ b/_sass/pivoine/__inline__/_utilities.scss
@@ -0,0 +1,78 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_utilities.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+.fl { float: left; }
+.fr { float: right; }
+.mb4 { margin-bottom: 4rem }
+.mb6 { margin-bottom: 6rem }
+.mt0 { margin-top: 0 }
+.mt1 { margin-top: 1rem }
+.mt2 { margin-top: 2rem }
+.mt3 { margin-top: 3rem }
+.mt4 { margin-top: 4rem }
+.pb0 { padding-bottom: 0 }
+.ml1 { margin-left: 1rem }
+.mr1 { margin-right: 1rem }
+
+.sixteen-nine { @include aspect-ratio(16, 9); }
+.sixteen-ten { @include aspect-ratio(16, 10); }
+.four-three { @include aspect-ratio(4, 3); }
+.one-one { @include aspect-ratio(1, 1); }
+
+.sr-only {
+ display: none;
+
+}
+
+.larger { font-size: larger; }
+.smaller { font-size: smaller; }
+
+.clearfix {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.ellipsis {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+.border {
+ border: 1px solid var(--border-color);
+// transition: border-color 1s ease;
+}
+
+.border-radius {
+ @include border-radius();
+}
+
+.fallback-img {
+ @include fallback-image();
+}
+
+.hidden {
+ display: none;
+}
diff --git a/_sass/pivoine/__link__/_avatar.scss b/_sass/pivoine/__link__/_avatar.scss
new file mode 100644
index 0000000..7fd3300
--- /dev/null
+++ b/_sass/pivoine/__link__/_avatar.scss
@@ -0,0 +1,36 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_avatar.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+.avatar {
+
+
+
+ position: relative;
+ z-index: 1;
+
+
+
+}
+
+
diff --git a/_sass/pivoine/__link__/_base.scss b/_sass/pivoine/__link__/_base.scss
new file mode 100644
index 0000000..524c274
--- /dev/null
+++ b/_sass/pivoine/__link__/_base.scss
@@ -0,0 +1,48 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_base.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2021 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
+body {
+ /* Prevent side-scrolling on mobile */
+ display: block;
+ position: relative;
+ overflow-x: hidden;
+}
+
+hy-push-state, hy-drawer {
+ display: block;
+ overflow: hidden;
+}
+
+
+
+@media print {
+ html {
+ font-size: var(--root-font-size-print);
+ }
+}
+
+@page {
+ margin: 16mm;
+}
diff --git a/_sass/pivoine/__link__/_break-layout.scss b/_sass/pivoine/__link__/_break-layout.scss
new file mode 100644
index 0000000..a133694
--- /dev/null
+++ b/_sass/pivoine/__link__/_break-layout.scss
@@ -0,0 +1,100 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_break-layout.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
+pre, table:not(.highlight), .katex-display, .break-layout, mjx-container[jax="CHTML"][display="true"] {
+ $pad: $content-padding * 2;
+
+ @media screen {
+ position: relative;
+ width: calc(100% + #{$pad});
+ border-top-right-radius: 0!important;
+ border-bottom-right-radius: 0!important;
+ }
+
+ @media screen and (min-width: $content-width) {
+ $x: null;
+ @if $gh-pages-compat {
+ $x: ($content-width / 2) - $pad;
+ } @else {
+ $x: calc(($content-width / 2) - $pad);
+ }
+ width: calc(100% + 50vw - #{$x});
+ }
+
+ @media screen and (min-width: $break-point-2) {
+ $x: null;
+ @if $gh-pages-compat {
+ $x: ($content-width-2 / 2) - $pad;
+ } @else {
+ $x: calc(($content-width-2 / 2) - $pad);
+ }
+ width: calc(100% + 50vw - #{$x});
+ }
+
+ @media screen and (min-width: $break-point-3) {
+ $x: $sidebar-width + $content-margin-3;
+ width: calc(100vw - #{$x});
+ }
+
+ @media screen and (min-width: $break-point-5) {
+ $x: $content-width-5 + $sidebar-width + $content-margin-5 - $pad;
+ width: calc(100% + 100vw - #{$x});
+ }
+
+ @media screen and (min-width: $break-point-dynamic) {
+ $x: null;
+ @if $gh-pages-compat {
+ $x: (($content-width-5 / 2) - ($content-padding * 2) + 21rem);
+ } @else {
+ $x: calc(($content-width-5 / 2) - ($content-padding * 2) + 21rem);
+ }
+ width: calc(100% + 50vw - #{$x} + 2px);
+ }
+}
+
+body:not(.no-break-layout) {
+ .katex-display > .katex, mjx-container[jax][display="true"] {
+ text-align: left!important;
+ }
+}
+
+body.no-break-layout {
+ width: calc(100% + #{$content-margin-5 + 2rem});
+}
+
+body.no-toc:not(.no-break-layout) {
+ pre, table:not(.highlight), .katex-display, .break-layout, mjx-container[jax="CHTML"][display="true"] {
+ @media screen and (min-width: $break-point-dynamic) {
+ $x: null;
+ @if $gh-pages-compat {
+ $x: (($content-width-5 / 2) - ($content-padding * 2));
+ } @else {
+ $x: calc(($content-width-5 / 2) - ($content-padding * 2));
+ }
+ width: calc(100% + 50vw - #{$x});
+ }
+ }
+}
+
diff --git a/_sass/pivoine/__link__/_content.scss b/_sass/pivoine/__link__/_content.scss
new file mode 100644
index 0000000..2303300
--- /dev/null
+++ b/_sass/pivoine/__link__/_content.scss
@@ -0,0 +1,39 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_content.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+.content {
+
+
+ @media print {
+ padding: 1rem;
+ }
+
+}
+
+.large-only {
+ display: none;
+ @media screen and (min-width: $break-point-dynamic) {
+ display: block;
+ }
+}
diff --git a/_sass/pivoine/__link__/_footer.scss b/_sass/pivoine/__link__/_footer.scss
new file mode 100644
index 0000000..eb07911
--- /dev/null
+++ b/_sass/pivoine/__link__/_footer.scss
@@ -0,0 +1,45 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_footer.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
+main > footer.content {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ color: var(--gray);
+ text-align: center;
+ min-height: 0;
+ padding-top: 0;
+ padding-bottom: 2rem;
+
+ > p {
+ margin-bottom: 0;
+ }
+
+ @media print {
+ display: none;
+ }
+}
+
diff --git a/_sass/pivoine/__link__/_images.scss b/_sass/pivoine/__link__/_images.scss
new file mode 100644
index 0000000..df1d602
--- /dev/null
+++ b/_sass/pivoine/__link__/_images.scss
@@ -0,0 +1,72 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_images.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+.content .aspect-ratio {
+// overflow: hidden;
+ img {
+// margin: 0;
+// width: 100%;
+// height: 100%;
+ object-fit: cover;
+ object-position: center;
+// background-color: var(--gray-bg);
+ }
+}
+
+
+figure, .figure {
+ @extend .faded, .fine, .centered;
+ margin-bottom: 2rem;
+
+ > *:first-child {
+ margin-bottom: 1rem;
+ }
+}
+
+.highlighter-rouge + .figure {
+ margin-top: -1.5rem;
+}
+
+.figcaption {
+ @extend .faded, .fine, .centered;
+ margin-top: -0.5rem;
+ margin-bottom: 2rem;
+}
+
+.gallery-wrapper {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
+ grid-gap: 1rem;
+}
+
+.gallery-item {
+ display: flex;
+ flex-direction: column;
+ overflow: hidden;
+
+ @media screen and (min-width: $break-point-1) {
+ border-radius: 3%;
+ }
+}
+
diff --git a/_sass/pivoine/__link__/_katex.scss b/_sass/pivoine/__link__/_katex.scss
new file mode 100644
index 0000000..8956b44
--- /dev/null
+++ b/_sass/pivoine/__link__/_katex.scss
@@ -0,0 +1,32 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_katex.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
+article {
+ .katex-display, mjx-container[jax][display="true"] {
+ @extend .pre-base;
+ padding: 2rem;
+ }
+}
+
diff --git a/_sass/pivoine/__link__/_links.scss b/_sass/pivoine/__link__/_links.scss
new file mode 100644
index 0000000..429a988
--- /dev/null
+++ b/_sass/pivoine/__link__/_links.scss
@@ -0,0 +1,64 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_links.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+hy-push-state a {
+// color: var(--body-color);
+
+
+
+ & {
+ transition: color 250ms, text-decoration-color 250ms, border-color 250ms;
+ }
+ &:hover {
+ transition: color 50ms, text-decoration-color 50ms, border-color 50ms;
+ }
+
+
+
+}
+
+.content a:not(.btn):not(.no-hover) {
+
+
+ &:hover {
+ @supports ((text-decoration-thickness: initial) and (text-underline-offset: initial)) {
+ text-decoration-color: var(--accent-color);
+ }
+ & { border-color: var(--accent-color); }
+ }
+
+}
+
+
+a.btn {
+ text-decoration: none;
+}
+
+@media print {
+ a:not(.no-print-link)::after {
+ content: " (" attr(href) ") ";
+ color: var(--gray);
+ font-size: 62%;
+ }
+}
diff --git a/_sass/pivoine/__link__/_mark-external.scss b/_sass/pivoine/__link__/_mark-external.scss
new file mode 100644
index 0000000..2cbf266
--- /dev/null
+++ b/_sass/pivoine/__link__/_mark-external.scss
@@ -0,0 +1,46 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_mark-external.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
+@media screen {
+ a.external,
+ a[href*="://"]:not(.no-mark-external):not(.no-mark),
+ a.no-push-state:not(.no-mark-external):not(.no-mark) {
+ &::after {
+ content: "\2009\ea7e";
+ font-family: 'icomoon'!important;
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ font-size: smaller;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ color: var(--menu-text);
+ }
+ }
+}
+
diff --git a/_sass/pivoine/__link__/_menu.scss b/_sass/pivoine/__link__/_menu.scss
new file mode 100644
index 0000000..98c3b8f
--- /dev/null
+++ b/_sass/pivoine/__link__/_menu.scss
@@ -0,0 +1,97 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_menu.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+$navbar-height: 5rem;
+
+
+
+.navbar {
+// @extend .color-transition;
+ > .content {
+
+
+
+ $shadow-padding: 3rem;
+ &::before {
+ content: "";
+ position: absolute;
+ display: block;
+ width: calc(100% - #{$shadow-padding * 2});
+ height: $navbar-height;
+ left: $shadow-padding;
+ margin: auto;
+ box-shadow: 0 0 2rem rgba(0,0,0,0.25);
+ z-index: -1;
+ }
+
+ }
+
+
+ &.fixed-top {
+ > .content {
+ &::before {
+ bottom: 1px;
+ }
+ }
+ }
+
+ &.fixed-bottom {
+ > .content {
+ &::before {
+ top: 1px;
+ }
+ }
+ }
+
+}
+
+
+
+
+a.nav-btn, button.nav-btn {
+ cursor: pointer;
+ &:hover, &:focus {
+ background-image: linear-gradient(90deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
+ }
+}
+
+.nav-span {
+ flex: 1;
+}
+
+.animation-main {
+ opacity: 0;
+ pointer-events: none;
+}
+
+#_navbar {
+ z-index: 3;
+ background-color: var(--body-bg);
+}
+
+.navbar {
+ .loading { display: none; }
+ @media print { display: none; }
+}
+
diff --git a/_sass/pivoine/__link__/_search.scss b/_sass/pivoine/__link__/_search.scss
new file mode 100644
index 0000000..3e35aa4
--- /dev/null
+++ b/_sass/pivoine/__link__/_search.scss
@@ -0,0 +1,82 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_search.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+hm-search {
+// display: flex;
+// flex-grow: 1;
+// padding: 1em;
+// position: relative;
+// overflow: hidden;
+ @media screen {
+
+ --hm-search-input-color: var(--menu-text);
+ --hm-search-input-color-bg: none;
+ --hm-search-input-color-border: none;
+ --hm-search-input-color-caret: var(--accent-color);
+ --hm-search-font-size: larger;
+
+ }
+}
+
+
+.search-results {
+ > article {
+ animation: scale-in-center 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
+
+ &:hover img {
+ filter: grayscale(0);
+ }
+
+
+ img {
+ filter: grayscale(1.0);
+ transition: filter 250ms ease-in-out;
+ }
+ }
+
+
+ /* ----------------------------------------------
+ * Generated by Animista on 2025-4-30 22:39:13
+ * Licensed under FreeBSD License.
+ * See http://animista.net/license for more info.
+ * w: http://animista.net, t: @cssanimista
+ * ---------------------------------------------- */
+
+ /**
+ * ----------------------------------------
+ * animation scale-in-center
+ * ----------------------------------------
+ */
+ @keyframes scale-in-center {
+ 0% {
+ transform: scale(0);
+ opacity: 1;
+ }
+ 100% {
+ transform: scale(1);
+ opacity: 1;
+ }
+ }
+}
+
diff --git a/_sass/pivoine/__link__/_sidebar.scss b/_sass/pivoine/__link__/_sidebar.scss
new file mode 100644
index 0000000..ff741db
--- /dev/null
+++ b/_sass/pivoine/__link__/_sidebar.scss
@@ -0,0 +1,127 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_sidebar.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+hy-drawer {
+// width: 100%;
+// position: relative;
+// overflow: hidden;
+// display: block;
+// z-index: 4;
+ @media screen {
+
+ --hy-drawer-width: 100%;
+ --hy-drawer-peek-width: .5rem;
+ --hy-drawer-box-shadow: 0 0 1rem rgba(0, 0, 0, 0.25);
+
+ }
+
+ @media screen and (min-width: $break-point-3) {
+
+
+
+ & { --hy-drawer-peek-width: #{$sidebar-width}; }
+
+ }
+
+ @media screen and (min-width: $break-point-dynamic) {
+ width: calc(50% - #{$half-content});
+
+
+ --hy-drawer-peek-width: calc(50% - #{$half-content});
+
+ }
+
+
+ @media screen {
+ &.loaded {
+ position: static;
+ }
+ }
+
+}
+
+.sidebar {
+
+
+ a {
+
+
+ &:hover {
+ border-bottom-color: #fff;
+ text-decoration-color: #fff;
+ }
+
+ }
+
+ &.invert a {
+
+
+ &:hover {
+ border-bottom-color: #222;
+ text-decoration-color: #222;
+ }
+
+ }
+}
+
+
+hy-drawer.loaded .sidebar {
+ min-height: 100%;
+}
+
+
+.sidebar-bg {
+
+
+ &.sidebar-overlay::after {
+ background: -moz-linear-gradient(top, rgba(32,32,32,0) 0%, rgba(32,32,32,0.5) 50%, rgba(32,32,32,0) 100%);
+ background: -webkit-linear-gradient(top, rgba(32,32,32,0) 0%,rgba(32,32,32,0.5) 50%, rgba(32,32,32,0) 100%);
+// background: linear-gradient(to bottom, rgba(32,32,32,0) 0%,rgba(32,32,32,0.5) 50%, rgba(32,32,32,0) 100%);
+ }
+}
+
+
+
+
+@media print {
+ .sidebar {
+ display: none;
+ }
+}
+
+#_swipe {
+ position: absolute;
+ z-index: 4;
+ opacity: 0.33;
+ top: 5vw;
+ right: 5vw;
+ transform: scale(0.67);
+
+ @media screen and (min-width: $break-point-1) {
+ top: calc(50% - 48px);
+ right: 10vw;
+ transform: scale(1);
+ }
+}
+
diff --git a/_sass/pivoine/__link__/_social.scss b/_sass/pivoine/__link__/_social.scss
new file mode 100644
index 0000000..420fb63
--- /dev/null
+++ b/_sass/pivoine/__link__/_social.scss
@@ -0,0 +1,33 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_social.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
+
+
+.sidebar-social {
+ @media print {
+ display: none;
+ }
+}
+
diff --git a/_sass/pivoine/__link__/_sound.scss b/_sass/pivoine/__link__/_sound.scss
new file mode 100644
index 0000000..fceda09
--- /dev/null
+++ b/_sass/pivoine/__link__/_sound.scss
@@ -0,0 +1,54 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_sound.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
+.sound-player {
+
+ > a {
+ text-transform: uppercase;
+ display: inline-block;
+ margin-bottom: 1rem;
+ cursor: pointer;
+ }
+
+ > canvas {
+ display: block;
+ margin: 0 auto;
+ height: 40px;
+
+ &.hidden {
+ display: none;
+ }
+ }
+}
+
+.sound-wrapper {
+ display: flex;
+ flex-direction: column;
+
+ > a {
+ text-transform: uppercase;
+ }
+}
+
diff --git a/_sass/pivoine/__link__/_toc.scss b/_sass/pivoine/__link__/_toc.scss
new file mode 100644
index 0000000..6269dee
--- /dev/null
+++ b/_sass/pivoine/__link__/_toc.scss
@@ -0,0 +1,55 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_toc.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2020 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+#markdown-toc {
+
+ transition: opacity 300ms ease, transform 300ms ease, border-color 1s ease;
+ &:before { left: 1rem; }
+}
+
+body:not(.no-toc) #markdown-toc {
+ @media screen and (min-width: $break-point-dynamic) {
+
+
+ overscroll-behavior: contain;
+
+ &.toc-hide {
+ opacity: 0;
+ transform: translateX(-2rem);
+ }
+
+ &.toc-show {
+ opacity: 1;
+ transform: translateX(0);
+ }
+
+ &.affix {
+ position: fixed;
+ top: 1rem;
+ max-height: calc(100vh - 1rem);
+ }
+
+ }
+}
+
diff --git a/_sass/pivoine/__link__/_utilities.scss b/_sass/pivoine/__link__/_utilities.scss
new file mode 100644
index 0000000..63382ec
--- /dev/null
+++ b/_sass/pivoine/__link__/_utilities.scss
@@ -0,0 +1,87 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pivoine/_utilities.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+.fl { float: left; }
+.fr { float: right; }
+.mb4 { margin-bottom: 4rem }
+.mb6 { margin-bottom: 6rem }
+.mt0 { margin-top: 0 }
+.mt1 { margin-top: 1rem }
+.mt2 { margin-top: 2rem }
+.mt3 { margin-top: 3rem }
+.mt4 { margin-top: 4rem }
+.pb0 { padding-bottom: 0 }
+.ml1 { margin-left: 1rem }
+.mr1 { margin-right: 1rem }
+
+.sixteen-nine { @include aspect-ratio(16, 9); }
+.sixteen-ten { @include aspect-ratio(16, 10); }
+.four-three { @include aspect-ratio(4, 3); }
+.one-one { @include aspect-ratio(1, 1); }
+
+.sr-only {
+// display: none;
+ display: unset;
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0,0,0,0);
+ border: 0;
+
+}
+
+.larger { font-size: larger; }
+.smaller { font-size: smaller; }
+
+.clearfix {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.ellipsis {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+.border {
+// border: 1px solid var(--border-color);
+ transition: border-color 1s ease;
+}
+
+.border-radius {
+ @include border-radius();
+}
+
+.fallback-img {
+ @include fallback-image();
+}
+
+.hidden {
+ display: none;
+}
diff --git a/_sass/pivoine/_avatar.pre.scss b/_sass/pivoine/_avatar.pre.scss
new file mode 100644
index 0000000..07f7f3d
--- /dev/null
+++ b/_sass/pivoine/_avatar.pre.scss
@@ -0,0 +1,45 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+.avatar {
+ // <<< inline
+ width: 7rem;
+ height: 7rem;
+ overflow: hidden;
+ display: inline-block;
+ // >>>
+
+ // <<< link
+ position: relative;
+ z-index: 1;
+ // >>>
+
+ // <<< inline
+ img { width: 100%; }
+ // >>>
+}
+
+// <<< inline
+.content .avatar {
+ @extend .color-transition;
+ float: right;
+ box-sizing: content-box;
+ border: 1rem solid var(--body-bg);
+ transition: border-color 1s ease;
+ margin-top: -1.5rem;
+ margin-right: -1rem;
+ border-radius: 100%;
+}
+// >>>
diff --git a/_sass/pivoine/_base.pre.scss b/_sass/pivoine/_base.pre.scss
new file mode 100644
index 0000000..fc20412
--- /dev/null
+++ b/_sass/pivoine/_base.pre.scss
@@ -0,0 +1,92 @@
+// Copyright (c) 2021 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+// <<< LINK
+body {
+ /* Prevent side-scrolling on mobile */
+ display: block;
+ position: relative;
+ overflow-x: hidden;
+}
+
+hy-push-state, hy-drawer {
+ display: block;
+ overflow: hidden;
+}
+// >>>
+// <<< INLINE
+body::before {
+ @media screen {
+ content: '';
+ width: .5rem;
+ background: var(--gray-bg);
+ position: fixed;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ }
+
+ @media (min-width: $break-point-3) {
+ width: $sidebar-width;
+ }
+
+ @media (min-width: $break-point-dynamic) {
+ width: calc(50% - #{$half-content});
+ }
+}
+
+html {
+ @media screen and (min-width: $break-point-1) {
+ font-size: var(--root-font-size-medium);
+ }
+
+ @media screen and (min-width: $break-point-font-large) {
+ font-size: var(--root-font-size-large);
+ }
+}
+
+#breadcrumbs {
+ > ul {
+ @extend .ellipsis;
+ height: 1rem;
+ margin: -1.5rem 0 .5rem;
+ padding: 0;
+ font-size: .667rem;
+ color: var(--menu-text);
+ text-transform: uppercase;
+ width: 100%;
+ list-style: none;
+ > li {
+ display: inline;
+ a {
+ color: var(--gray);
+ text-decoration: none;
+ border-bottom: none;
+ }
+ }
+ }
+}
+// >>>
+// <<< LINK
+@media print {
+ html {
+ font-size: var(--root-font-size-print);
+ }
+}
+
+@page {
+ margin: 16mm;
+}
+// >>>
\ No newline at end of file
diff --git a/_sass/pivoine/_break-layout.pre.scss b/_sass/pivoine/_break-layout.pre.scss
new file mode 100644
index 0000000..a8ea02f
--- /dev/null
+++ b/_sass/pivoine/_break-layout.pre.scss
@@ -0,0 +1,91 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+// <<< LINK
+pre, table:not(.highlight), .katex-display, .break-layout, mjx-container[jax="CHTML"][display="true"] {
+ $pad: $content-padding * 2;
+
+ @media screen {
+ position: relative;
+ width: calc(100% + #{$pad});
+ border-top-right-radius: 0!important;
+ border-bottom-right-radius: 0!important;
+ }
+
+ @media screen and (min-width: $content-width) {
+ $x: null;
+ @if $gh-pages-compat {
+ $x: ($content-width / 2) - $pad;
+ } @else {
+ $x: calc(($content-width / 2) - $pad);
+ }
+ width: calc(100% + 50vw - #{$x});
+ }
+
+ @media screen and (min-width: $break-point-2) {
+ $x: null;
+ @if $gh-pages-compat {
+ $x: ($content-width-2 / 2) - $pad;
+ } @else {
+ $x: calc(($content-width-2 / 2) - $pad);
+ }
+ width: calc(100% + 50vw - #{$x});
+ }
+
+ @media screen and (min-width: $break-point-3) {
+ $x: $sidebar-width + $content-margin-3;
+ width: calc(100vw - #{$x});
+ }
+
+ @media screen and (min-width: $break-point-5) {
+ $x: $content-width-5 + $sidebar-width + $content-margin-5 - $pad;
+ width: calc(100% + 100vw - #{$x});
+ }
+
+ @media screen and (min-width: $break-point-dynamic) {
+ $x: null;
+ @if $gh-pages-compat {
+ $x: (($content-width-5 / 2) - ($content-padding * 2) + 21rem);
+ } @else {
+ $x: calc(($content-width-5 / 2) - ($content-padding * 2) + 21rem);
+ }
+ width: calc(100% + 50vw - #{$x} + 2px);
+ }
+}
+
+body:not(.no-break-layout) {
+ .katex-display > .katex, mjx-container[jax][display="true"] {
+ text-align: left!important;
+ }
+}
+
+body.no-break-layout {
+ width: calc(100% + #{$content-margin-5 + 2rem});
+}
+
+body.no-toc:not(.no-break-layout) {
+ pre, table:not(.highlight), .katex-display, .break-layout, mjx-container[jax="CHTML"][display="true"] {
+ @media screen and (min-width: $break-point-dynamic) {
+ $x: null;
+ @if $gh-pages-compat {
+ $x: (($content-width-5 / 2) - ($content-padding * 2));
+ } @else {
+ $x: calc(($content-width-5 / 2) - ($content-padding * 2));
+ }
+ width: calc(100% + 50vw - #{$x});
+ }
+ }
+}
+// >>>
diff --git a/_sass/pivoine/_content.pre.scss b/_sass/pivoine/_content.pre.scss
new file mode 100644
index 0000000..1fa1f52
--- /dev/null
+++ b/_sass/pivoine/_content.pre.scss
@@ -0,0 +1,64 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+.content {
+ // <<< inline
+ margin-left: auto;
+ margin-right: auto;
+ padding: 8rem $content-padding 12rem;
+
+ @media screen {
+ padding-left: $content-padding + .5rem;
+ min-height: 100vh;
+ }
+
+ @media screen and (min-width: $break-point-1) {
+ max-width: $content-width;
+ }
+
+ @media screen and (min-width: $break-point-2) {
+ max-width: $content-width-2;
+ }
+
+ @media screen and (min-width: $break-point-3) {
+ padding-left: $content-padding;
+ margin-left: $sidebar-width + $content-margin-3;
+ margin-right: $content-margin-3;
+ }
+
+ @media screen and (min-width: $break-point-5) {
+ padding-top: 9rem;
+ margin-left: $sidebar-width + $content-margin-5;
+ margin-right: $content-margin-5;
+ max-width: $content-width-5;
+ }
+
+ @media screen and (min-width: $break-point-dynamic) {
+ margin: auto;
+ }
+ // >>>
+ // <<< link
+ @media print {
+ padding: 1rem;
+ }
+ // >>>
+}
+
+.large-only {
+ display: none;
+ @media screen and (min-width: $break-point-dynamic) {
+ display: block;
+ }
+}
diff --git a/_sass/pivoine/_footer.pre.scss b/_sass/pivoine/_footer.pre.scss
new file mode 100644
index 0000000..7f6d349
--- /dev/null
+++ b/_sass/pivoine/_footer.pre.scss
@@ -0,0 +1,36 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+// <<<<< LINK
+main > footer.content {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ color: var(--gray);
+ text-align: center;
+ min-height: 0;
+ padding-top: 0;
+ padding-bottom: 2rem;
+
+ > p {
+ margin-bottom: 0;
+ }
+
+ @media print {
+ display: none;
+ }
+}
+// >>>>>
diff --git a/_sass/pivoine/_images.pre.scss b/_sass/pivoine/_images.pre.scss
new file mode 100644
index 0000000..c052f59
--- /dev/null
+++ b/_sass/pivoine/_images.pre.scss
@@ -0,0 +1,63 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+.content .aspect-ratio {
+ overflow: hidden; // inline
+ img {
+ margin: 0; // inline
+ width: 100%; // inline
+ height: 100%; // inline
+ object-fit: cover; // link
+ object-position: center; // link
+ background-color: var(--gray-bg); // inline
+ }
+}
+
+// <<< link
+figure, .figure {
+ @extend .faded, .fine, .centered;
+ margin-bottom: 2rem;
+
+ > *:first-child {
+ margin-bottom: 1rem;
+ }
+}
+
+.highlighter-rouge + .figure {
+ margin-top: -1.5rem;
+}
+
+.figcaption {
+ @extend .faded, .fine, .centered;
+ margin-top: -0.5rem;
+ margin-bottom: 2rem;
+}
+
+.gallery-wrapper {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
+ grid-gap: 1rem;
+}
+
+.gallery-item {
+ display: flex;
+ flex-direction: column;
+ overflow: hidden;
+
+ @media screen and (min-width: $break-point-1) {
+ border-radius: 3%;
+ }
+}
+// >>>
diff --git a/_sass/pivoine/_katex.pre.scss b/_sass/pivoine/_katex.pre.scss
new file mode 100644
index 0000000..9b75253
--- /dev/null
+++ b/_sass/pivoine/_katex.pre.scss
@@ -0,0 +1,23 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+// <<< LINK
+article {
+ .katex-display, mjx-container[jax][display="true"] {
+ @extend .pre-base;
+ padding: 2rem;
+ }
+}
+// >>>
diff --git a/_sass/pivoine/_links.pre.scss b/_sass/pivoine/_links.pre.scss
new file mode 100644
index 0000000..a00de2d
--- /dev/null
+++ b/_sass/pivoine/_links.pre.scss
@@ -0,0 +1,79 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+hy-push-state a {
+ color: var(--body-color); // inline
+
+ // <<< inline
+ @supports not ((text-decoration-thickness: initial) and (text-underline-offset: initial)) {
+ text-decoration: none;
+ border-bottom: 2px solid;
+ }
+
+ @supports ((text-decoration-thickness: initial) and (text-underline-offset: initial)) {
+ text-decoration-style: solid;
+ text-underline-offset: .35rem;
+ text-decoration-thickness: 2px;
+ }
+ // >>>
+
+ // <<< link
+ & {
+ transition: color 250ms, text-decoration-color 250ms, border-color 250ms;
+ }
+ &:hover {
+ transition: color 50ms, text-decoration-color 50ms, border-color 50ms;
+ }
+ // >>>
+
+ // <<< inline
+ &.no-hover {
+ border-bottom: none;
+ text-decoration-thickness: unset;
+ text-underline-offset: unset;
+ }
+ // >>>
+}
+
+.content a:not(.btn):not(.no-hover) {
+ // <<< inline
+ @supports ((text-decoration-thickness: initial) and (text-underline-offset: initial)) {
+ text-decoration-color: var(--accent-color-faded);
+ }
+ & { border-color: var(--accent-color-faded); }
+ // >>>
+ // <<< link
+ &:hover {
+ @supports ((text-decoration-thickness: initial) and (text-underline-offset: initial)) {
+ text-decoration-color: var(--accent-color);
+ }
+ & { border-color: var(--accent-color); }
+ }
+ // >>>
+}
+
+// <<< link
+a.btn {
+ text-decoration: none;
+}
+
+@media print {
+ a:not(.no-print-link)::after {
+ content: " (" attr(href) ") ";
+ color: var(--gray);
+ font-size: 62%;
+ }
+}
+// >>>
\ No newline at end of file
diff --git a/_sass/pivoine/_mark-external.pre.scss b/_sass/pivoine/_mark-external.pre.scss
new file mode 100644
index 0000000..5ad6a36
--- /dev/null
+++ b/_sass/pivoine/_mark-external.pre.scss
@@ -0,0 +1,37 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+// <<< link
+@media screen {
+ a.external,
+ a[href*="://"]:not(.no-mark-external):not(.no-mark),
+ a.no-push-state:not(.no-mark-external):not(.no-mark) {
+ &::after {
+ content: "\2009\ea7e";
+ font-family: 'icomoon'!important;
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ font-size: smaller;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ color: var(--menu-text);
+ }
+ }
+}
+// >>>
diff --git a/_sass/pivoine/_menu.pre.scss b/_sass/pivoine/_menu.pre.scss
new file mode 100644
index 0000000..3b574c6
--- /dev/null
+++ b/_sass/pivoine/_menu.pre.scss
@@ -0,0 +1,143 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+$navbar-height: 5rem;
+
+// <<< inline
+.fixed-common {
+ position: fixed;
+ left: 0;
+ width: 100%;
+ z-index: 2;
+}
+
+.fixed-top {
+ @extend .fixed-common;
+ top: 0;
+}
+
+.fixed-bottom {
+ @extend .fixed-common;
+ bottom: 0;
+}
+// >>>
+
+.navbar {
+ @extend .color-transition; // inline
+
+ > .content {
+ // <<< inline
+ position: relative;
+ padding-top: 0;
+ padding-bottom: 0;
+ min-height: 0;
+ max-height: $navbar-height;
+ // >>>
+
+ // <<< link
+ $shadow-padding: 3rem;
+ &::before {
+ content: "";
+ position: absolute;
+ display: block;
+ width: calc(100% - #{$shadow-padding * 2});
+ height: $navbar-height;
+ left: $shadow-padding;
+ margin: auto;
+ box-shadow: 0 0 2rem rgba(0,0,0,0.25);
+ z-index: -1;
+ }
+ // >>>
+ }
+
+ // <<< link
+ &.fixed-top {
+ > .content {
+ &::before {
+ bottom: 1px;
+ }
+ }
+ }
+
+ &.fixed-bottom {
+ > .content {
+ &::before {
+ top: 1px;
+ }
+ }
+ }
+ // >>>
+}
+
+// <<< inline
+.nav-btn-bar {
+ @extend .color-transition;
+ margin: 0 -1rem;
+ background-color: white; // IE11
+ background-color: var(--body-bg);
+ height: $navbar-height;
+ display: flex;
+ align-items: center;
+ position: relative;
+
+ > :first-child, > :last-child {
+ border: none;
+ }
+}
+
+.nav-btn {
+ @extend .color-transition;
+ background: none;
+ border: none;
+ text-decoration: none;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 3.25rem;
+ height: $navbar-height;
+ color: var(--menu-text);
+ border-right: 1px solid var(--border-color);
+ border-left: 1px solid var(--border-color);
+ margin-left: -1px;
+}
+// >>>
+
+// <<< link
+a.nav-btn, button.nav-btn {
+ cursor: pointer;
+ &:hover, &:focus {
+ background-image: linear-gradient(90deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
+ }
+}
+
+.nav-span {
+ flex: 1;
+}
+
+.animation-main {
+ opacity: 0;
+ pointer-events: none;
+}
+
+#_navbar {
+ z-index: 3;
+ background-color: var(--body-bg);
+}
+
+.navbar {
+ .loading { display: none; }
+ @media print { display: none; }
+}
+// >>>
diff --git a/_sass/pivoine/_search.pre.scss b/_sass/pivoine/_search.pre.scss
new file mode 100644
index 0000000..f31e409
--- /dev/null
+++ b/_sass/pivoine/_search.pre.scss
@@ -0,0 +1,74 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+hm-search {
+ display: flex; // inline
+ flex-grow: 1; // inline
+ padding: 1em; // inline
+ position: relative; // inline
+ overflow: hidden; // inline
+
+ @media screen {
+ // <<< link
+ --hm-search-input-color: var(--menu-text);
+ --hm-search-input-color-bg: none;
+ --hm-search-input-color-border: none;
+ --hm-search-input-color-caret: var(--accent-color);
+ --hm-search-font-size: larger;
+ // >>>
+ }
+}
+
+// <<< link
+.search-results {
+ > article {
+ animation: scale-in-center 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
+
+ &:hover img {
+ filter: grayscale(0);
+ }
+
+
+ img {
+ filter: grayscale(1.0);
+ transition: filter 250ms ease-in-out;
+ }
+ }
+
+
+ /* ----------------------------------------------
+ * Generated by Animista on 2025-4-30 22:39:13
+ * Licensed under FreeBSD License.
+ * See http://animista.net/license for more info.
+ * w: http://animista.net, t: @cssanimista
+ * ---------------------------------------------- */
+
+ /**
+ * ----------------------------------------
+ * animation scale-in-center
+ * ----------------------------------------
+ */
+ @keyframes scale-in-center {
+ 0% {
+ transform: scale(0);
+ opacity: 1;
+ }
+ 100% {
+ transform: scale(1);
+ opacity: 1;
+ }
+ }
+}
+// >>>
diff --git a/_sass/pivoine/_sidebar.pre.scss b/_sass/pivoine/_sidebar.pre.scss
new file mode 100644
index 0000000..6264cf1
--- /dev/null
+++ b/_sass/pivoine/_sidebar.pre.scss
@@ -0,0 +1,225 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+hy-drawer {
+ width: 100%; // inline
+ position: relative; // inline
+ overflow: hidden; // inline
+ display: block; // inline
+ z-index: 4; // inline
+
+ @media screen {
+ // <<< link
+ --hy-drawer-width: 100%;
+ --hy-drawer-peek-width: .5rem;
+ --hy-drawer-box-shadow: 0 0 1rem rgba(0, 0, 0, 0.25);
+ // >>>
+ }
+
+ @media screen and (min-width: $break-point-3) {
+ // <<< inline
+ position: fixed;
+ width: $sidebar-width;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ margin-left: 0;
+
+ &.cover {
+ position: relative;
+ width: 100%;
+ }
+ // >>>
+
+ // <<< link
+ & { --hy-drawer-peek-width: #{$sidebar-width}; }
+ // >>>
+ }
+
+ @media screen and (min-width: $break-point-dynamic) {
+ width: calc(50% - #{$half-content});
+
+ // <<< link
+ --hy-drawer-peek-width: calc(50% - #{$half-content});
+ // >>>
+ }
+
+ // <<< link
+ @media screen {
+ &.loaded {
+ position: static;
+ }
+ }
+ // >>>
+}
+
+.sidebar {
+ // <<< inline
+ position: relative;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ color: rgba(255, 255, 255, .75);
+ text-align: center;
+ min-height: 100vh;
+ &.invert { color: rgba(32, 32, 32, .75) }
+ // >>>
+
+ a {
+ // <<< inline
+ color: #fff;
+ border-bottom-color: rgba(255, 255, 255, 0.2);
+ text-decoration-color: rgba(255, 255, 255, 0.2);
+ // >>>
+ // <<< link
+ &:hover {
+ border-bottom-color: #fff;
+ text-decoration-color: #fff;
+ }
+ // >>>
+ }
+
+ &.invert a {
+ // <<< inline
+ color: #222;
+ border-bottom-color: rgba(32, 32, 32, 0.2);
+ text-decoration-color: rgba(32, 32, 32, 0.2);
+ // >>>
+ // <<< link
+ &:hover {
+ border-bottom-color: #222;
+ text-decoration-color: #222;
+ }
+ // >>>
+ }
+}
+
+// <<< link
+hy-drawer.loaded .sidebar {
+ min-height: 100%;
+}
+// >>>
+
+.sidebar-bg {
+ // <<< inline
+ position: absolute;
+ top: 0;
+ left: calc(50% - 50vw);
+ width: 100vw;
+ height: 100%;
+ background: #202020 center / cover;
+
+ &::after {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ background: rgba(0, 0, 0, 0.05);
+ }
+ // >>>
+
+ &.sidebar-overlay::after {
+ background: -moz-linear-gradient(top, rgba(32,32,32,0) 0%, rgba(32,32,32,0.5) 50%, rgba(32,32,32,0) 100%); // link
+ background: -webkit-linear-gradient(top, rgba(32,32,32,0) 0%,rgba(32,32,32,0.5) 50%, rgba(32,32,32,0) 100%); // link
+ background: linear-gradient(to bottom, rgba(32,32,32,0) 0%,rgba(32,32,32,0.5) 50%, rgba(32,32,32,0) 100%); // inline
+ }
+}
+
+// <<<<< INLINE
+.sidebar-sticky {
+ position: relative;
+ z-index: 3;
+ max-width: $sidebar-width;
+ padding: 1.5rem;
+ contain: content;
+}
+
+.sidebar-about {
+ .avatar {
+ margin-bottom: 1.5rem
+ }
+
+ > a.sidebar-title {
+ text-decoration: none;
+ > h2 {
+ margin: 0;
+ padding-bottom: .5rem;
+ }
+
+ &::after {
+ content: '';
+ display: block;
+ border-bottom: 2px solid;
+ margin: 0 auto .5rem;
+ width: 4rem;
+ border-color: rgba(255, 255, 255, 0.2);
+ transition: border-color 250ms;
+ }
+
+ &:hover::after {
+ border-color: rgba(255, 255, 255, 1);
+ transition: border-color 50ms;
+ }
+ }
+}
+
+.sidebar.invert .sidebar-about > a.sidebar-title{
+ &::after { border-color: rgba(32, 32, 32, 0.2) }
+ &:hover::after { border-color: #222 }
+}
+
+.sidebar-nav > ul {
+ list-style: none;
+ padding-left: 0;
+}
+
+.sidebar-nav-item {
+ @extend .f4;
+ display: inline-block;
+ margin-bottom: .5rem;
+}
+
+#_main.no-drawer {
+ @media (min-width: $break-point-3) {
+ #_menu { display: none }
+ .nav-btn-bar > :nth-child(2) { border: none }
+ }
+}
+// >>>
+
+// <<< LINK
+@media print {
+ .sidebar {
+ display: none;
+ }
+}
+
+#_swipe {
+ position: absolute;
+ z-index: 4;
+ opacity: 0.33;
+ top: 5vw;
+ right: 5vw;
+ transform: scale(0.67);
+
+ @media screen and (min-width: $break-point-1) {
+ top: calc(50% - 48px);
+ right: 10vw;
+ transform: scale(1);
+ }
+}
+// >>>
diff --git a/_sass/pivoine/_social.pre.scss b/_sass/pivoine/_social.pre.scss
new file mode 100644
index 0000000..128c0ae
--- /dev/null
+++ b/_sass/pivoine/_social.pre.scss
@@ -0,0 +1,58 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+// <<<<< INLINE
+.sidebar-social {
+ &::after {
+ @extend .clearfix
+ }
+
+ > ul {
+ display: inline-block;
+ list-style: none;
+ padding-left: 0;
+ margin-bottom: 0;
+
+ > li {
+ float: left;
+
+ > a {
+ display: inline-block;
+ text-align: center;
+ font-size: 1.4rem;
+ width: 3rem;
+ height: 4rem;
+ padding: .5rem 0;
+ line-height: 4rem - 2 * .5rem;
+ text-decoration: none;
+ border-bottom-width: 2px;
+ border-bottom-style: solid;
+ }
+ }
+
+ li + li {
+ margin-top: 0;
+ }
+ }
+}
+// >>>>>
+
+// <<< link
+.sidebar-social {
+ @media print {
+ display: none;
+ }
+}
+// >>>
diff --git a/_sass/pivoine/_sound.pre.scss b/_sass/pivoine/_sound.pre.scss
new file mode 100644
index 0000000..d586eb1
--- /dev/null
+++ b/_sass/pivoine/_sound.pre.scss
@@ -0,0 +1,45 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+// <<<<< LINK
+.sound-player {
+
+ > a {
+ text-transform: uppercase;
+ display: inline-block;
+ margin-bottom: 1rem;
+ cursor: pointer;
+ }
+
+ > canvas {
+ display: block;
+ margin: 0 auto;
+ height: 40px;
+
+ &.hidden {
+ display: none;
+ }
+ }
+}
+
+.sound-wrapper {
+ display: flex;
+ flex-direction: column;
+
+ > a {
+ text-transform: uppercase;
+ }
+}
+// >>>>>
diff --git a/_sass/pivoine/_toc.pre.scss b/_sass/pivoine/_toc.pre.scss
new file mode 100644
index 0000000..2fc4c91
--- /dev/null
+++ b/_sass/pivoine/_toc.pre.scss
@@ -0,0 +1,65 @@
+// Copyright (c) 2020 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+#markdown-toc {
+ // <<< inline
+ @extend .note-sm;
+ margin: 2rem -1rem 2rem calc(-1rem + 1px);
+ padding-left: 2.5rem;
+ padding-bottom: .5rem;
+ // >>>
+ transition: opacity 300ms ease, transform 300ms ease, border-color 1s ease; // link
+ &:before { left: 1rem; }
+}
+
+body:not(.no-toc) #markdown-toc {
+ @media screen and (min-width: $break-point-dynamic) {
+ // <<< inline
+ position: absolute;
+ z-index: 4;
+ width: 20.5rem;
+ right: 0;
+ margin: auto;
+ overflow: auto;
+ // >>>
+ // <<< link
+ overscroll-behavior: contain;
+
+ &.toc-hide {
+ opacity: 0;
+ transform: translateX(-2rem);
+ }
+
+ &.toc-show {
+ opacity: 1;
+ transform: translateX(0);
+ }
+
+ &.affix {
+ position: fixed;
+ top: 1rem;
+ max-height: calc(100vh - 1rem);
+ }
+ // >>>
+ }
+}
+
+// <<< inline
+body.no-break-layout:not(.no-toc) #markdown-toc {
+ @media screen and (min-width: $break-point-dynamic) {
+ width: calc(50% - #{$half-content});
+ }
+}
+// >>>
\ No newline at end of file
diff --git a/_sass/pivoine/_utilities.pre.scss b/_sass/pivoine/_utilities.pre.scss
new file mode 100644
index 0000000..61a2a4b
--- /dev/null
+++ b/_sass/pivoine/_utilities.pre.scss
@@ -0,0 +1,79 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+.fl { float: left; }
+.fr { float: right; }
+.mb4 { margin-bottom: 4rem }
+.mb6 { margin-bottom: 6rem }
+.mt0 { margin-top: 0 }
+.mt1 { margin-top: 1rem }
+.mt2 { margin-top: 2rem }
+.mt3 { margin-top: 3rem }
+.mt4 { margin-top: 4rem }
+.pb0 { padding-bottom: 0 }
+.ml1 { margin-left: 1rem }
+.mr1 { margin-right: 1rem }
+
+.sixteen-nine { @include aspect-ratio(16, 9); }
+.sixteen-ten { @include aspect-ratio(16, 10); }
+.four-three { @include aspect-ratio(4, 3); }
+.one-one { @include aspect-ratio(1, 1); }
+
+.sr-only {
+ display: none; // inline
+ // <<< link
+ display: unset;
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0,0,0,0);
+ border: 0;
+ // >>>
+}
+
+.larger { font-size: larger; }
+.smaller { font-size: smaller; }
+
+.clearfix {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.ellipsis {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+.border {
+ border: 1px solid var(--border-color); // inline
+ transition: border-color 1s ease; // link
+}
+
+.border-radius {
+ @include border-radius();
+}
+
+.fallback-img {
+ @include fallback-image();
+}
+
+.hidden {
+ display: none;
+}
diff --git a/_sass/pooleparty/__inline__/_base.scss b/_sass/pooleparty/__inline__/_base.scss
new file mode 100644
index 0000000..3d2bcb4
--- /dev/null
+++ b/_sass/pooleparty/__inline__/_base.scss
@@ -0,0 +1,78 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_base.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+* {
+ box-sizing: border-box;
+// // -webkit-tap-highlight-color: transparent;
+}
+
+
+html,
+body {
+ margin: 0;
+ padding: 0;
+}
+
+html {
+ font-family: var(--font-family);
+ font-size: var(--root-font-size);
+ line-height: var(--root-line-height);
+}
+
+body {
+ @extend .color-transition;
+ color: var(--body-color);
+ background-color: var(--body-bg);
+ font-weight: var(--font-weight);
+ overflow-y: scroll;
+}
+
+p {
+ @extend .color-transition;
+}
+
+.content img, .img,
+.content video, .video {
+ max-width: 100%;
+ height: auto;
+}
+
+.lead {
+ @extend .border-radius;
+ margin-left: -1rem;
+ margin-right: -1rem;
+ margin-bottom: 1.5rem;
+}
+
+img, video {
+ &.lead {
+ display: block;
+ max-width: calc(100% + 2rem);
+ width: calc(100% + 2rem);
+ height: auto;
+ }
+}
+
+
+
diff --git a/_sass/pooleparty/__inline__/_code.scss b/_sass/pooleparty/__inline__/_code.scss
new file mode 100644
index 0000000..c23bf35
--- /dev/null
+++ b/_sass/pooleparty/__inline__/_code.scss
@@ -0,0 +1,25 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_code.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2020 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
diff --git a/_sass/pooleparty/__inline__/_footer.scss b/_sass/pooleparty/__inline__/_footer.scss
new file mode 100644
index 0000000..11d42cb
--- /dev/null
+++ b/_sass/pooleparty/__inline__/_footer.scss
@@ -0,0 +1,25 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_footer.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+// footer { margin-bottom: 2rem; }
\ No newline at end of file
diff --git a/_sass/pooleparty/__inline__/_footnotes.scss b/_sass/pooleparty/__inline__/_footnotes.scss
new file mode 100644
index 0000000..af13f29
--- /dev/null
+++ b/_sass/pooleparty/__inline__/_footnotes.scss
@@ -0,0 +1,25 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_footnotes.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
diff --git a/_sass/pooleparty/__inline__/_message.scss b/_sass/pooleparty/__inline__/_message.scss
new file mode 100644
index 0000000..777f731
--- /dev/null
+++ b/_sass/pooleparty/__inline__/_message.scss
@@ -0,0 +1,66 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_message.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
+.message {
+ @extend .color-transition;
+ margin-bottom: 1rem;
+ padding: 1rem;
+ color: var(--gray-text);
+ background-color: var(--gray-bg);
+ margin-left: -1rem;
+ margin-right: -1rem;
+}
+
+.note-sm {
+ @extend .message;
+ background: transparent;
+ color: var(--body-color);
+ font-size: smaller;
+ border-left: 1px solid var(--border-color);
+ padding: 1.2rem 1rem 0 1rem;
+ margin: 1rem -1rem;
+ position: relative;
+
+ &:before {
+ font-size: 0.667rem;
+ font-weight: bold;
+ font-style: normal;
+ letter-spacing: .025rem;
+ text-transform: uppercase;
+ color: var(--menu-text);
+ position: absolute;
+ top: 0;
+ }
+
+ &[title]:before {
+ content: attr(title)!important;
+ }
+}
+
+.note {
+ @extend .note-sm;
+ font-size: 1rem;
+}
+
diff --git a/_sass/pooleparty/__inline__/_pagination.scss b/_sass/pooleparty/__inline__/_pagination.scss
new file mode 100644
index 0000000..957d584
--- /dev/null
+++ b/_sass/pooleparty/__inline__/_pagination.scss
@@ -0,0 +1,25 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_pagination.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
diff --git a/_sass/pooleparty/__inline__/_posts.scss b/_sass/pooleparty/__inline__/_posts.scss
new file mode 100644
index 0000000..a8a74d8
--- /dev/null
+++ b/_sass/pooleparty/__inline__/_posts.scss
@@ -0,0 +1,91 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_posts.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
+.page {
+ margin-bottom: 3em;
+
+ li + li {
+ margin-top: .25rem;
+ }
+
+ > header {
+ position: relative;
+ margin-bottom: 2rem;
+ }
+
+ .aspect-ratio.sixteen-nine.lead {
+ @extend .border-radius;
+ }
+}
+
+body:not(.no-third-column) {
+ .page > header {
+ > .lead + .note-sm,
+ > a.no-hover + .note-sm {
+ @media screen and (min-width: $break-point-dynamic) {
+ position: absolute;
+ right: -25rem;
+ width: 21rem;
+ bottom: 0;
+ margin-bottom: 0;
+ }
+ }
+ }
+}
+
+// Blog post or page title
+.page-title, .post-title { margin-top: 0; }
+
+// Meta data line below post title
+.post-date {
+ @extend .h4;
+ display: flex;
+ justify-content: space-between;
+ margin-top: -.6rem;
+ height: 2rem;
+ margin-bottom: .85rem;
+ color: var(--gray);
+
+ > .ellipsis {
+ cursor: pointer;
+ }
+
+ [class^="icon-"] {
+ display: inline-block;
+ font-size: smaller;
+ margin-right: .25rem;
+ }
+}
+
+.img-wrapper > .hotfx-lightbox-slide {
+ display: none;
+}
+
+hotfx-lightbox::part(slide) {
+ display: inherit;
+ margin: 0 auto;
+}
+
+
diff --git a/_sass/pooleparty/__inline__/_read-more.scss b/_sass/pooleparty/__inline__/_read-more.scss
new file mode 100644
index 0000000..60e8c03
--- /dev/null
+++ b/_sass/pooleparty/__inline__/_read-more.scss
@@ -0,0 +1,25 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_read-more.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
diff --git a/_sass/pooleparty/__inline__/_related.scss b/_sass/pooleparty/__inline__/_related.scss
new file mode 100644
index 0000000..e556520
--- /dev/null
+++ b/_sass/pooleparty/__inline__/_related.scss
@@ -0,0 +1,38 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_related.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
+.related-posts {
+ padding-left: 0;
+ list-style: none;
+ margin-bottom: 2rem;
+
+ > li,
+ > li + li {
+ margin-top: 1rem;
+ }
+}
+
+
+
diff --git a/_sass/pooleparty/__inline__/_table.scss b/_sass/pooleparty/__inline__/_table.scss
new file mode 100644
index 0000000..0b40868
--- /dev/null
+++ b/_sass/pooleparty/__inline__/_table.scss
@@ -0,0 +1,25 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_table.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
diff --git a/_sass/pooleparty/__inline__/_type.scss b/_sass/pooleparty/__inline__/_type.scss
new file mode 100644
index 0000000..18f6da9
--- /dev/null
+++ b/_sass/pooleparty/__inline__/_type.scss
@@ -0,0 +1,156 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_type.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+.heading {
+ font-family: var(--font-family-heading);
+ font-weight: var(--font-weight-heading);
+}
+
+.f1 {
+ @extend .heading;
+ font-size: 2rem;
+ line-height: 1.3;
+}
+
+.f2 {
+ @extend .heading;
+ font-size: 1.5rem;
+ line-height: 1.4;
+}
+
+.f3 {
+ @extend .heading;
+ font-size: 1.2em;
+ line-height: 1.5;
+}
+
+.f4 {
+ @extend .heading;
+ font-size: 1.08rem;
+ line-height: 1.6;
+}
+
+.f5 {
+ @extend .heading;
+ font-size: 1.04rem;
+ line-height: 1.7;
+}
+
+.f6 {
+ @extend .heading;
+ font-size: 1rem;
+}
+
+
+h1, .h1 { @extend .f1; }
+h2, .h2 { @extend .f2; }
+h3, .h3 { @extend .f3; }
+h4, .h4 { @extend .f4; }
+h5, .h5 { @extend .f5; }
+h6, .h6 { @extend .f6; }
+
+.content {
+ h1, .h1 {
+ > a { text-decoration: none; border-bottom: none; }
+ @media screen and (max-width: $break-point-1) {
+ font-size: 1.7rem;
+ line-height: 1.35;
+ }
+ @media screen and (min-width: $break-point-5) {
+ font-size: 2.4rem;
+ line-height: 1.25;
+ }
+ }
+}
+
+body:not(.no-large-headings) {
+ .content {
+ h1, .h1 {
+ @media screen and (min-width: $break-point-dynamic) {
+ width: calc(100% + 50vw - 32rem);
+ font-size: 3rem;
+ line-height: 1.2;
+ }
+ @media screen and (min-width: $break-point-font-large) {
+ font-size: 4rem;
+ line-height: 1.1;
+ }
+ }
+ }
+}
+
+h1, h2, h3, .h1, .h2, .h3 {
+ margin: 4rem 0 1rem;
+}
+
+h4, h5, h6, .h4, .h5, .h6 {
+ margin: 3rem 0 .5rem;
+}
+
+p {
+ margin-top: 0;
+ margin-bottom: 1rem;
+
+ &.lead {
+ font-size: 1.2em;
+ margin-top: 1.5rem;
+ margin-bottom: 1.5rem;
+ padding: 0 1rem;
+ }
+}
+
+ul, ol, dl {
+ margin-top: 0;
+ margin-bottom: 1rem;
+}
+
+ul, ol {
+ padding-left: 1.25rem;
+}
+
+hr, .hr {
+ @extend .color-transition;
+ border: 0;
+ margin: 1rem 0;
+ border-top: 1px solid var(--border-color);
+}
+
+.hr-after::after {
+ @extend .color-transition;
+ content: "";
+ display: block;
+ margin: 1rem 0;
+ border-top: 1px solid var(--border-color);
+}
+
+.hr-bottom {
+ @extend .color-transition;
+ border-bottom: 1px solid var(--border-color);
+ padding-bottom: .75rem;
+ margin-bottom: 1rem;
+}
+
+
+
+
diff --git a/_sass/pooleparty/__link__/_base.scss b/_sass/pooleparty/__link__/_base.scss
new file mode 100644
index 0000000..5f65e58
--- /dev/null
+++ b/_sass/pooleparty/__link__/_base.scss
@@ -0,0 +1,46 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_base.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+* {
+// box-sizing: border-box;
+ // -webkit-tap-highlight-color: transparent;
+}
+
+
+
+
+@media (display-mode: standalone) {
+ body {
+ overscroll-behavior-y: contain;
+ }
+}
+
+:focus {
+ outline-color: var(--accent-color)!important;
+}
+
+::selection {
+ background: var(--accent-color-faded);
+}
+
diff --git a/_sass/pooleparty/__link__/_code.scss b/_sass/pooleparty/__link__/_code.scss
new file mode 100644
index 0000000..73ac201
--- /dev/null
+++ b/_sass/pooleparty/__link__/_code.scss
@@ -0,0 +1,220 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_code.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2020 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
+code, pre {
+ font-family: var(--code-font-family);
+}
+
+code {
+ @extend .color-transition;
+ padding: .25em .5em;
+ background-color: var(--gray-bg);
+ font-size: smaller;
+}
+
+.figure-base {
+ @extend .color-transition;
+ margin-left: -1rem;
+ margin-right: -1rem;
+
+ // Prevent code linebreaks and allow side-scrolling for better readability on mobile
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ @include border-radius();
+}
+
+.pre-base {
+ @extend .figure-base;
+ padding: 1rem;
+ margin-bottom: 1.5rem;
+ background-color: var(--gray-bg);
+
+ // HACK: prevents painting for some reason
+ backface-visibility: hidden;
+
+ @media print {
+ width: 100%!important;
+ page-break-inside: avoid;
+ break-inside: avoid-page;
+ }
+}
+
+pre {
+ @extend .pre-base;
+ margin-top: 0;
+ display: block;
+ font-size: .83em;
+ line-height: 1.5em;
+ position: relative;
+}
+
+pre > code {
+ display: inline-block;
+ position: relative;
+ min-width: 100%;
+ padding: 0;
+ color: inherit;
+ background-color: transparent;
+ font-size: 1em;
+
+ // .__hl {
+ // @extend .color-transition;
+ // display: inline-block;
+ // position: absolute;
+ // left: -1rem;
+ // right: -1rem;
+ // background: var(--accent-color-highlight);
+ // border-left: .25rem solid var(--accent-color-faded);
+ // z-index: -1;
+ // }
+}
+
+.pre-header-common {
+ @extend .color-transition;
+ height: 2rem;
+ border: none;
+ border-bottom: 1px solid var(--border-color);
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+div.highlight {
+ position: relative;
+
+ > .pre-header {
+ @extend .figure-base;
+ @extend .pre-header-common;
+ display: block;
+ color: var(--gray)!important;
+ background-color: var(--gray-bg);
+ overflow: clip;
+
+ > span {
+ font-size: smaller;
+ }
+
+ > * {
+ display: inline-block;
+ padding: .3rem 1rem .2rem;
+ }
+ }
+
+ > button {
+ @extend .pre-header-common;
+ position: absolute;
+ top: 0;
+ right: -1rem;
+ color: var(--menu-text);
+ background: none;
+ border-left: 1px solid var(--border-color);
+ border-right: 1px solid var(--border-color);
+ border-top-left-radius: 0;
+ padding-left: 1rem;
+ padding-right: 1rem;
+ overflow: hidden;
+ cursor: pointer;
+ opacity: 0;
+ transition: opacity 300ms;
+
+ &:hover {
+ background: var(--gray-bg);
+ }
+
+ &.copy-success {
+ > .icon-copy {
+ animation-name: icon-copy;
+ animation-duration: 1.5s;
+ animation-timing-function: ease;
+ }
+ > .icon-checkmark {
+ animation-name: icon-checkmark;
+ animation-duration: 1.5s;
+ animation-timing-function: ease;
+ }
+ }
+ > .icon-copy {
+ display: inline-block;
+ }
+ > .icon-checkmark {
+ position: absolute;
+
+ top: 50%;
+ margin-top: -3em;
+
+ left: 0;
+ right: 0;
+ text-align: center;
+ }
+ }
+
+ &:hover > button {
+ opacity: 1;
+ transition: opacity 100ms;
+ }
+
+ > .pre-header ~ pre.highlight {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ padding-top: .65rem;
+ }
+
+ > .pre-header ~ button {
+ opacity: 1;
+ }
+}
+
+body.no-break-layout {
+ div.highlight > button {
+ border-right: none;
+ }
+}
+
+@keyframes icon-checkmark {
+ 0% {
+ transform: translateY(0);
+ }
+ 15%, 85% {
+ transform: translateY(2.5em);
+ }
+ 100% {
+ transform: translateY(5em);
+ }
+}
+
+@keyframes icon-copy {
+ 0% {
+ transform: translateY(0);
+ }
+ 15% {
+ transform: translateY(2.5em);
+ }
+ 15.01%, 85% {
+ transform: translateY(-2.5em);
+ }
+ 100% {
+ transform: translateY(0);
+ }
+}
+
diff --git a/_sass/pooleparty/__link__/_footer.scss b/_sass/pooleparty/__link__/_footer.scss
new file mode 100644
index 0000000..076b741
--- /dev/null
+++ b/_sass/pooleparty/__link__/_footer.scss
@@ -0,0 +1,25 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_footer.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+footer { margin-bottom: 2rem; }
\ No newline at end of file
diff --git a/_sass/pooleparty/__link__/_footnotes.scss b/_sass/pooleparty/__link__/_footnotes.scss
new file mode 100644
index 0000000..13c34ad
--- /dev/null
+++ b/_sass/pooleparty/__link__/_footnotes.scss
@@ -0,0 +1,80 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_footnotes.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
+// Footnote number within body text
+a[href^="#fn:"],
+// Back to footnote link
+a[href^="#fnref:"] {
+ margin-left: .1rem;
+ font-weight: var(--font-weight-bold);
+
+ @media screen and (max-width: $break-point-4) {
+ font-weight: normal;
+ &::before { content: "["; }
+ &::after { content: "]"; }
+ }
+}
+
+sup {
+ line-height: 1;
+
+ &[id^="fnref"] {
+ @media screen and (max-width: $break-point-4) {
+ vertical-align: baseline;
+ font-size: inherit;
+ }
+ }
+}
+
+// List of footnotes
+.footnotes {
+ margin-top: 5rem;
+ margin-bottom: 5rem;
+
+ > ol {
+ color: var(--gray);
+
+ > li {
+ padding: .5rem;
+ margin-left: .5rem;
+ > p { margin: 0; }
+ &:focus {
+ outline: none;
+ color: var(--gray-text);
+ background: var(--gray-bg);
+ }
+ }
+ }
+
+ &::before {
+ @extend .color-transition;
+ content: "";
+ display: block;
+ margin: 1rem 0;
+ border: 0;
+ border-top: 1px solid var(--border-color);
+ }
+}
+
diff --git a/_sass/pooleparty/__link__/_message.scss b/_sass/pooleparty/__link__/_message.scss
new file mode 100644
index 0000000..0ee2aa1
--- /dev/null
+++ b/_sass/pooleparty/__link__/_message.scss
@@ -0,0 +1,25 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_message.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
diff --git a/_sass/pooleparty/__link__/_pagination.scss b/_sass/pooleparty/__link__/_pagination.scss
new file mode 100644
index 0000000..5c91d1d
--- /dev/null
+++ b/_sass/pooleparty/__link__/_pagination.scss
@@ -0,0 +1,91 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_pagination.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
+.pagination {
+ @extend .color-transition;
+ width: calc(100% + 2rem);
+ margin: 0 -1rem 1rem;
+ color: var(--gray);
+ text-align: center;
+
+ > ul {
+ list-style: none;
+ padding: 0;
+ }
+}
+
+// Pagination items can be `span`s or `a`s
+.pagination-item {
+ > * {
+ display: block;
+ padding: .25rem 1rem;
+ border: solid var(--border-color);
+ border-width: 1px 0;
+ transition: border-color 1s ease;
+ }
+
+ > a, > a:hover, > a:focus {
+ border-color: var(--border-color)!important;
+ text-decoration: none;
+ }
+
+ &:first-child > * {
+ margin-bottom: -1px;
+ }
+
+ // Only provide a hover state for linked pagination items
+ > a:hover, > a:focus {
+ background-color: var(--gray-bg);
+ border-bottom: 1px solid var(--border-color);
+ }
+}
+
+@media (min-width: 23.5em) {
+ .pagination {
+ width: 100%;
+ margin: 3rem 0;
+ }
+
+ .pagination-item {
+ > * {
+ float: left;
+ width: 50%;
+ border-width: 1px;
+ }
+
+ &:first-child > * {
+ margin-bottom: 0;
+ border-top-left-radius: 0.25rem;
+ border-bottom-left-radius: 0.25rem;
+ }
+
+ &:last-child > * {
+ margin-left: -1px;
+ border-top-right-radius: 0.25rem;
+ border-bottom-right-radius: 0.25rem;
+ }
+ }
+}
+
diff --git a/_sass/pooleparty/__link__/_posts.scss b/_sass/pooleparty/__link__/_posts.scss
new file mode 100644
index 0000000..5aa6e61
--- /dev/null
+++ b/_sass/pooleparty/__link__/_posts.scss
@@ -0,0 +1,55 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_posts.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
+
+clap-button {
+ margin-left: auto;
+ margin-right: auto;
+ --clap-button-color: var(--accent-color);
+}
+
+clap-button + p.message {
+ margin: -2rem auto 0;
+ max-width: 32rem;
+ font-size: smaller
+}
+
+hr.dingbat {
+ border: 0;
+ &:after{
+ content: "\2756";
+ display: block;
+ text-align: center;
+ font-size: 1.5rem;
+ color: var(--menu-text);
+ }
+}
+
+@media print {
+ .page {
+ margin-bottom: 0
+ }
+}
+
diff --git a/_sass/pooleparty/__link__/_read-more.scss b/_sass/pooleparty/__link__/_read-more.scss
new file mode 100644
index 0000000..388622b
--- /dev/null
+++ b/_sass/pooleparty/__link__/_read-more.scss
@@ -0,0 +1,46 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_read-more.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
+.read-more {
+ @extend .faded;
+ margin-top: 1.5rem;
+ margin-bottom: 3rem;
+ text-align: right;
+
+ &::after {
+ content: " \2192";
+ font-family: 'icomoon'!important;
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ font-size: smaller;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ }
+}
+
diff --git a/_sass/pooleparty/__link__/_related.scss b/_sass/pooleparty/__link__/_related.scss
new file mode 100644
index 0000000..59679ea
--- /dev/null
+++ b/_sass/pooleparty/__link__/_related.scss
@@ -0,0 +1,33 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_related.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
+
+
+.comments {
+ @media print {
+ display: none;
+ }
+}
+
diff --git a/_sass/pooleparty/__link__/_table.scss b/_sass/pooleparty/__link__/_table.scss
new file mode 100644
index 0000000..0c3e9fd
--- /dev/null
+++ b/_sass/pooleparty/__link__/_table.scss
@@ -0,0 +1,176 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_table.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+
+table:not(.rouge-table) {
+ @extend .figure-base;
+ border-collapse: collapse;
+ border-radius: 0!important;
+ display: block;
+ margin-bottom: 1.5rem;
+
+ td, th {
+ @extend .color-transition;
+ padding: .5em .75em;
+
+ &:first-child {
+ padding-left: 1rem;
+ border-left: 1px solid var(--border-color);
+ }
+
+ &:last-child {
+ padding-right: 1rem;
+ border-right: 1px solid var(--border-color);
+ }
+ }
+
+ > *:first-child {
+ border-top: 1px solid var(--border-color);
+ }
+
+ > *:last-child {
+ border-bottom: 1px solid var(--border-color);
+ }
+
+ thead {
+ @extend .color-transition;
+ background-color: var(--body-bg);
+ }
+
+ thead + tbody,
+ tbody + tbody,
+ tfoot {
+ @extend .color-transition;
+ border-top: 1px solid var(--border-color);
+ }
+
+ tbody tr:nth-child(even) td,
+ tbody tr:nth-child(even) th {
+ @extend .color-transition;
+ background-color: var(--body-bg);
+ }
+
+ tbody tr:nth-child(odd) td,
+ tbody tr:nth-child(odd) th {
+ @extend .color-transition;
+ background-color: var(--gray-bg);
+ }
+}
+
+// CSS only Responsive Tables
+// http://dbushell.com/2016/03/04/css-only-responsive-tables/
+// by David Bushell
+@mixin scroll-table() {
+ white-space: nowrap; // optional - looks better for small cell values
+}
+
+@mixin flip-table() {
+ display: flex;
+ overflow: hidden;
+
+ thead, tbody {
+ display: flex;
+ }
+
+ thead {
+ flex-shrink: 0;
+ min-width: min-content;
+ border-left: 1px solid var(--border-color);
+ border-bottom: 1px solid var(--border-color);
+
+ th {
+ padding-left: 1em;
+ }
+ }
+
+ tbody {
+ position: relative;
+ overflow-x: auto;
+ overflow-y: hidden;
+ -webkit-overflow-scrolling: touch;
+ }
+
+ tr {
+ display: flex;
+ flex-direction: column;
+ min-width: min-content;
+ flex-shrink: 0;
+
+ &:last-child {
+ border-right: 1px solid var(--border-color);
+ td {
+ padding-right: 1em;
+ }
+ }
+ }
+
+ td, th {
+ display: block;
+
+ &:first-child {
+ padding-left: .5em;
+ border-left: none;
+ }
+
+ &:last-child {
+ padding-right: .5em;
+ border-right: none;
+ }
+ }
+}
+
+table.stretch-table {
+ display: table;
+ width: 100% !important;
+ width: calc(100% + 2em) !important;
+ // @media screen and (max-width: $break-point-4) {
+ // display: block!important;
+ // @include scroll-table();
+ // }
+}
+
+table.scroll-table {
+ @include scroll-table();
+}
+
+table.flip-table {
+ @include flip-table();
+}
+
+@media screen and (max-width: $break-point-4) {
+ table.scroll-table-small {
+ @include scroll-table();
+ }
+
+ table.flip-table-small {
+ @include flip-table();
+ }
+}
+
+@media print {
+ table:not(.rouge-table) {
+ width: 100%!important;
+ }
+}
+
diff --git a/_sass/pooleparty/__link__/_type.scss b/_sass/pooleparty/__link__/_type.scss
new file mode 100644
index 0000000..ec1ca74
--- /dev/null
+++ b/_sass/pooleparty/__link__/_type.scss
@@ -0,0 +1,180 @@
+// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
+//
+// To change the contents of this file,
+// edit `_sass/pooleparty/_type.pre.scss`
+// and run `npm run build:css`.
+//
+// During development you can run `npm run watch:css`
+// to continuosly rebuild this file.
+
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+.heading {
+ font-family: var(--font-family-heading);
+ font-weight: var(--font-weight-heading);
+}
+
+.f1 {
+ @extend .heading;
+ font-size: 2rem;
+ line-height: 1.3;
+}
+
+.f2 {
+ @extend .heading;
+ font-size: 1.5rem;
+ line-height: 1.4;
+}
+
+.f3 {
+ @extend .heading;
+ font-size: 1.2em;
+ line-height: 1.5;
+}
+
+.f4 {
+ @extend .heading;
+ font-size: 1.08rem;
+ line-height: 1.6;
+}
+
+.f5 {
+ @extend .heading;
+ font-size: 1.04rem;
+ line-height: 1.7;
+}
+
+.f6 {
+ @extend .heading;
+ font-size: 1rem;
+}
+
+
+
+
+h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, .heading {
+ text-rendering: optimizeLegibility;
+}
+
+h1 + h2, .h1 + .h2, h1 + .h2, .h1 + h2,
+h2 + h3, .h2 + .h3, h2 + .h3, .h2 + h3,
+h3 + h4, .h3 + .h4, h3 + .h4, .h3 + h4,
+h4 + h5, .h4 + .h5, h4 + .h5, .h4 + h5,
+h5 + h6, .h5 + .h6, h5 + .h6, .h5 + h6 {
+ margin-top: 0;
+}
+
+dt, strong {
+ font-weight: var(--font-weight-bold);
+}
+
+dt:after{
+ content: " :";
+ color: var(--menu-text);
+}
+
+dd {
+ margin-bottom: .5rem;
+}
+
+abbr {
+ font-size: 85%;
+ font-weight: var(--font-weight-bold);
+ text-transform: uppercase;
+
+ &[title] {
+ cursor: help;
+ border-bottom: 1px dotted var(--border-color);
+ }
+}
+
+blockquote {
+ @extend .color-transition;
+ padding: .5rem 1rem;
+ margin: .8rem 0;
+ color: var(--gray);
+ border-left: .25rem solid var(--border-color);
+
+ &.lead {
+ font-size: 1.2em;
+ margin-top: 1.5rem;
+ margin-bottom: 1.5rem;
+ border-left-width: 0.4rem;
+ }
+
+ > p:last-child {
+ margin-bottom: 0;
+ }
+}
+
+.heading {
+ font-weight: var(--font-weight-heading);
+}
+
+.fine, .smaller {
+ font-size: smaller;
+}
+
+.faded {
+ @extend .color-transition;
+ color: var(--gray);
+}
+
+.centered {
+ text-align: center;
+}
+
+h1[id], h2[id], h3[id], h4[id], h5[id], h6[id] {
+ position: relative;
+
+ > .permalink {
+ text-decoration: none;
+ border: none;
+ opacity: 0;
+ transition: opacity 400ms;
+
+ @media print {
+ display: none;
+ }
+ }
+
+ &:hover > .permalink {
+ opacity: 0.5;
+ }
+
+ & > .permalink:hover,
+ & > .permalink:focus {
+ opacity: 1;
+ transition: opacity 200ms;
+ }
+}
+
+.content-hash::before {
+ content: '#'
+}
+.content-json::before {
+ content: '{}'
+}
+
+@media print {
+ h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, dt {
+ page-break-inside: avoid;
+ break-inside: avoid-page;
+ page-break-after: avoid;
+ break-after: avoid-page;
+ }
+}
+
diff --git a/_sass/pooleparty/_base.pre.scss b/_sass/pooleparty/_base.pre.scss
new file mode 100644
index 0000000..371868e
--- /dev/null
+++ b/_sass/pooleparty/_base.pre.scss
@@ -0,0 +1,83 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+* {
+ box-sizing: border-box; // inline
+ // -webkit-tap-highlight-color: transparent; // link
+}
+
+// <<< INLINE
+html,
+body {
+ margin: 0;
+ padding: 0;
+}
+
+html {
+ font-family: var(--font-family);
+ font-size: var(--root-font-size);
+ line-height: var(--root-line-height);
+}
+
+body {
+ @extend .color-transition;
+ color: var(--body-color);
+ background-color: var(--body-bg);
+ font-weight: var(--font-weight);
+ overflow-y: scroll;
+}
+
+p {
+ @extend .color-transition;
+}
+
+.content img, .img,
+.content video, .video {
+ max-width: 100%;
+ height: auto;
+}
+
+.lead {
+ @extend .border-radius;
+ margin-left: -1rem;
+ margin-right: -1rem;
+ margin-bottom: 1.5rem;
+}
+
+img, video {
+ &.lead {
+ display: block;
+ max-width: calc(100% + 2rem);
+ width: calc(100% + 2rem);
+ height: auto;
+ }
+}
+// >>> INLINE
+
+// <<< LINK
+@media (display-mode: standalone) {
+ body {
+ overscroll-behavior-y: contain;
+ }
+}
+
+:focus {
+ outline-color: var(--accent-color)!important;
+}
+
+::selection {
+ background: var(--accent-color-faded);
+}
+// >>> LINK
diff --git a/_sass/pooleparty/_code.pre.scss b/_sass/pooleparty/_code.pre.scss
new file mode 100644
index 0000000..9dd335a
--- /dev/null
+++ b/_sass/pooleparty/_code.pre.scss
@@ -0,0 +1,211 @@
+// Copyright (c) 2020 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+// <<<<< LINK
+code, pre {
+ font-family: var(--code-font-family);
+}
+
+code {
+ @extend .color-transition;
+ padding: .25em .5em;
+ background-color: var(--gray-bg);
+ font-size: smaller;
+}
+
+.figure-base {
+ @extend .color-transition;
+ margin-left: -1rem;
+ margin-right: -1rem;
+
+ // Prevent code linebreaks and allow side-scrolling for better readability on mobile
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ @include border-radius();
+}
+
+.pre-base {
+ @extend .figure-base;
+ padding: 1rem;
+ margin-bottom: 1.5rem;
+ background-color: var(--gray-bg);
+
+ // HACK: prevents painting for some reason
+ backface-visibility: hidden;
+
+ @media print {
+ width: 100%!important;
+ page-break-inside: avoid;
+ break-inside: avoid-page;
+ }
+}
+
+pre {
+ @extend .pre-base;
+ margin-top: 0;
+ display: block;
+ font-size: .83em;
+ line-height: 1.5em;
+ position: relative;
+}
+
+pre > code {
+ display: inline-block;
+ position: relative;
+ min-width: 100%;
+ padding: 0;
+ color: inherit;
+ background-color: transparent;
+ font-size: 1em;
+
+ // .__hl {
+ // @extend .color-transition;
+ // display: inline-block;
+ // position: absolute;
+ // left: -1rem;
+ // right: -1rem;
+ // background: var(--accent-color-highlight);
+ // border-left: .25rem solid var(--accent-color-faded);
+ // z-index: -1;
+ // }
+}
+
+.pre-header-common {
+ @extend .color-transition;
+ height: 2rem;
+ border: none;
+ border-bottom: 1px solid var(--border-color);
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+div.highlight {
+ position: relative;
+
+ > .pre-header {
+ @extend .figure-base;
+ @extend .pre-header-common;
+ display: block;
+ color: var(--gray)!important;
+ background-color: var(--gray-bg);
+ overflow: clip;
+
+ > span {
+ font-size: smaller;
+ }
+
+ > * {
+ display: inline-block;
+ padding: .3rem 1rem .2rem;
+ }
+ }
+
+ > button {
+ @extend .pre-header-common;
+ position: absolute;
+ top: 0;
+ right: -1rem;
+ color: var(--menu-text);
+ background: none;
+ border-left: 1px solid var(--border-color);
+ border-right: 1px solid var(--border-color);
+ border-top-left-radius: 0;
+ padding-left: 1rem;
+ padding-right: 1rem;
+ overflow: hidden;
+ cursor: pointer;
+ opacity: 0;
+ transition: opacity 300ms;
+
+ &:hover {
+ background: var(--gray-bg);
+ }
+
+ &.copy-success {
+ > .icon-copy {
+ animation-name: icon-copy;
+ animation-duration: 1.5s;
+ animation-timing-function: ease;
+ }
+ > .icon-checkmark {
+ animation-name: icon-checkmark;
+ animation-duration: 1.5s;
+ animation-timing-function: ease;
+ }
+ }
+ > .icon-copy {
+ display: inline-block;
+ }
+ > .icon-checkmark {
+ position: absolute;
+
+ top: 50%;
+ margin-top: -3em;
+
+ left: 0;
+ right: 0;
+ text-align: center;
+ }
+ }
+
+ &:hover > button {
+ opacity: 1;
+ transition: opacity 100ms;
+ }
+
+ > .pre-header ~ pre.highlight {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ padding-top: .65rem;
+ }
+
+ > .pre-header ~ button {
+ opacity: 1;
+ }
+}
+
+body.no-break-layout {
+ div.highlight > button {
+ border-right: none;
+ }
+}
+
+@keyframes icon-checkmark {
+ 0% {
+ transform: translateY(0);
+ }
+ 15%, 85% {
+ transform: translateY(2.5em);
+ }
+ 100% {
+ transform: translateY(5em);
+ }
+}
+
+@keyframes icon-copy {
+ 0% {
+ transform: translateY(0);
+ }
+ 15% {
+ transform: translateY(2.5em);
+ }
+ 15.01%, 85% {
+ transform: translateY(-2.5em);
+ }
+ 100% {
+ transform: translateY(0);
+ }
+}
+// >>>>> LINK
diff --git a/_sass/pooleparty/_footer.pre.scss b/_sass/pooleparty/_footer.pre.scss
new file mode 100644
index 0000000..ce41ea9
--- /dev/null
+++ b/_sass/pooleparty/_footer.pre.scss
@@ -0,0 +1,16 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+footer { margin-bottom: 2rem; } // link
diff --git a/_sass/pooleparty/_footnotes.pre.scss b/_sass/pooleparty/_footnotes.pre.scss
new file mode 100644
index 0000000..407fc41
--- /dev/null
+++ b/_sass/pooleparty/_footnotes.pre.scss
@@ -0,0 +1,71 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+// <<<<< LINK
+// Footnote number within body text
+a[href^="#fn:"],
+// Back to footnote link
+a[href^="#fnref:"] {
+ margin-left: .1rem;
+ font-weight: var(--font-weight-bold);
+
+ @media screen and (max-width: $break-point-4) {
+ font-weight: normal;
+ &::before { content: "["; }
+ &::after { content: "]"; }
+ }
+}
+
+sup {
+ line-height: 1;
+
+ &[id^="fnref"] {
+ @media screen and (max-width: $break-point-4) {
+ vertical-align: baseline;
+ font-size: inherit;
+ }
+ }
+}
+
+// List of footnotes
+.footnotes {
+ margin-top: 5rem;
+ margin-bottom: 5rem;
+
+ > ol {
+ color: var(--gray);
+
+ > li {
+ padding: .5rem;
+ margin-left: .5rem;
+ > p { margin: 0; }
+ &:focus {
+ outline: none;
+ color: var(--gray-text);
+ background: var(--gray-bg);
+ }
+ }
+ }
+
+ &::before {
+ @extend .color-transition;
+ content: "";
+ display: block;
+ margin: 1rem 0;
+ border: 0;
+ border-top: 1px solid var(--border-color);
+ }
+}
+// >>>>> LINK
diff --git a/_sass/pooleparty/_message.pre.scss b/_sass/pooleparty/_message.pre.scss
new file mode 100644
index 0000000..66c6f1b
--- /dev/null
+++ b/_sass/pooleparty/_message.pre.scss
@@ -0,0 +1,57 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+// <<< INLINE
+.message {
+ @extend .color-transition;
+ margin-bottom: 1rem;
+ padding: 1rem;
+ color: var(--gray-text);
+ background-color: var(--gray-bg);
+ margin-left: -1rem;
+ margin-right: -1rem;
+}
+
+.note-sm {
+ @extend .message;
+ background: transparent;
+ color: var(--body-color);
+ font-size: smaller;
+ border-left: 1px solid var(--border-color);
+ padding: 1.2rem 1rem 0 1rem;
+ margin: 1rem -1rem;
+ position: relative;
+
+ &:before {
+ font-size: 0.667rem;
+ font-weight: bold;
+ font-style: normal;
+ letter-spacing: .025rem;
+ text-transform: uppercase;
+ color: var(--menu-text);
+ position: absolute;
+ top: 0;
+ }
+
+ &[title]:before {
+ content: attr(title)!important;
+ }
+}
+
+.note {
+ @extend .note-sm;
+ font-size: 1rem;
+}
+// >>>
diff --git a/_sass/pooleparty/_pagination.pre.scss b/_sass/pooleparty/_pagination.pre.scss
new file mode 100644
index 0000000..4f2f7f2
--- /dev/null
+++ b/_sass/pooleparty/_pagination.pre.scss
@@ -0,0 +1,82 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+// <<< LINK
+.pagination {
+ @extend .color-transition;
+ width: calc(100% + 2rem);
+ margin: 0 -1rem 1rem;
+ color: var(--gray);
+ text-align: center;
+
+ > ul {
+ list-style: none;
+ padding: 0;
+ }
+}
+
+// Pagination items can be `span`s or `a`s
+.pagination-item {
+ > * {
+ display: block;
+ padding: .25rem 1rem;
+ border: solid var(--border-color);
+ border-width: 1px 0;
+ transition: border-color 1s ease;
+ }
+
+ > a, > a:hover, > a:focus {
+ border-color: var(--border-color)!important;
+ text-decoration: none;
+ }
+
+ &:first-child > * {
+ margin-bottom: -1px;
+ }
+
+ // Only provide a hover state for linked pagination items
+ > a:hover, > a:focus {
+ background-color: var(--gray-bg);
+ border-bottom: 1px solid var(--border-color);
+ }
+}
+
+@media (min-width: 23.5em) {
+ .pagination {
+ width: 100%;
+ margin: 3rem 0;
+ }
+
+ .pagination-item {
+ > * {
+ float: left;
+ width: 50%;
+ border-width: 1px;
+ }
+
+ &:first-child > * {
+ margin-bottom: 0;
+ border-top-left-radius: 0.25rem;
+ border-bottom-left-radius: 0.25rem;
+ }
+
+ &:last-child > * {
+ margin-left: -1px;
+ border-top-right-radius: 0.25rem;
+ border-bottom-right-radius: 0.25rem;
+ }
+ }
+}
+// >>> LINK
diff --git a/_sass/pooleparty/_posts.pre.scss b/_sass/pooleparty/_posts.pre.scss
new file mode 100644
index 0000000..8ab28ce
--- /dev/null
+++ b/_sass/pooleparty/_posts.pre.scss
@@ -0,0 +1,111 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+// <<< INLINE
+.page {
+ margin-bottom: 3em;
+
+ li + li {
+ margin-top: .25rem;
+ }
+
+ > header {
+ position: relative;
+ margin-bottom: 2rem;
+ }
+
+ .aspect-ratio.sixteen-nine.lead {
+ @extend .border-radius;
+ }
+}
+
+body:not(.no-third-column) {
+ .page > header {
+ > .lead + .note-sm,
+ > a.no-hover + .note-sm {
+ @media screen and (min-width: $break-point-dynamic) {
+ position: absolute;
+ right: -25rem;
+ width: 21rem;
+ bottom: 0;
+ margin-bottom: 0;
+ }
+ }
+ }
+}
+
+// Blog post or page title
+.page-title, .post-title { margin-top: 0; }
+
+// Meta data line below post title
+.post-date {
+ @extend .h4;
+ display: flex;
+ justify-content: space-between;
+ margin-top: -.6rem;
+ height: 2rem;
+ margin-bottom: .85rem;
+ color: var(--gray);
+
+ > .ellipsis {
+ cursor: pointer;
+ }
+
+ [class^="icon-"] {
+ display: inline-block;
+ font-size: smaller;
+ margin-right: .25rem;
+ }
+}
+
+.img-wrapper > .hotfx-lightbox-slide {
+ display: none;
+}
+
+hotfx-lightbox::part(slide) {
+ display: inherit;
+ margin: 0 auto;
+}
+// >>>
+// <<< LINK
+clap-button {
+ margin-left: auto;
+ margin-right: auto;
+ --clap-button-color: var(--accent-color);
+}
+
+clap-button + p.message {
+ margin: -2rem auto 0;
+ max-width: 32rem;
+ font-size: smaller
+}
+
+hr.dingbat {
+ border: 0;
+ &:after{
+ content: "\2756";
+ display: block;
+ text-align: center;
+ font-size: 1.5rem;
+ color: var(--menu-text);
+ }
+}
+
+@media print {
+ .page {
+ margin-bottom: 0
+ }
+}
+// >>>
diff --git a/_sass/pooleparty/_read-more.pre.scss b/_sass/pooleparty/_read-more.pre.scss
new file mode 100644
index 0000000..517ef63
--- /dev/null
+++ b/_sass/pooleparty/_read-more.pre.scss
@@ -0,0 +1,37 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+// <<< link
+.read-more {
+ @extend .faded;
+ margin-top: 1.5rem;
+ margin-bottom: 3rem;
+ text-align: right;
+
+ &::after {
+ content: " \2192";
+ font-family: 'icomoon'!important;
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ font-size: smaller;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ }
+}
+// >>>
diff --git a/_sass/pooleparty/_related.pre.scss b/_sass/pooleparty/_related.pre.scss
new file mode 100644
index 0000000..e51d9aa
--- /dev/null
+++ b/_sass/pooleparty/_related.pre.scss
@@ -0,0 +1,35 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+// <<<<< INLINE
+.related-posts {
+ padding-left: 0;
+ list-style: none;
+ margin-bottom: 2rem;
+
+ > li,
+ > li + li {
+ margin-top: 1rem;
+ }
+}
+// >>>>>
+
+// <<< link
+.comments {
+ @media print {
+ display: none;
+ }
+}
+// >>>
diff --git a/_sass/pooleparty/_table.pre.scss b/_sass/pooleparty/_table.pre.scss
new file mode 100644
index 0000000..47ab53a
--- /dev/null
+++ b/_sass/pooleparty/_table.pre.scss
@@ -0,0 +1,167 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+// <<<<< LINK
+table:not(.rouge-table) {
+ @extend .figure-base;
+ border-collapse: collapse;
+ border-radius: 0!important;
+ display: block;
+ margin-bottom: 1.5rem;
+
+ td, th {
+ @extend .color-transition;
+ padding: .5em .75em;
+
+ &:first-child {
+ padding-left: 1rem;
+ border-left: 1px solid var(--border-color);
+ }
+
+ &:last-child {
+ padding-right: 1rem;
+ border-right: 1px solid var(--border-color);
+ }
+ }
+
+ > *:first-child {
+ border-top: 1px solid var(--border-color);
+ }
+
+ > *:last-child {
+ border-bottom: 1px solid var(--border-color);
+ }
+
+ thead {
+ @extend .color-transition;
+ background-color: var(--body-bg);
+ }
+
+ thead + tbody,
+ tbody + tbody,
+ tfoot {
+ @extend .color-transition;
+ border-top: 1px solid var(--border-color);
+ }
+
+ tbody tr:nth-child(even) td,
+ tbody tr:nth-child(even) th {
+ @extend .color-transition;
+ background-color: var(--body-bg);
+ }
+
+ tbody tr:nth-child(odd) td,
+ tbody tr:nth-child(odd) th {
+ @extend .color-transition;
+ background-color: var(--gray-bg);
+ }
+}
+
+// CSS only Responsive Tables
+// http://dbushell.com/2016/03/04/css-only-responsive-tables/
+// by David Bushell
+@mixin scroll-table() {
+ white-space: nowrap; // optional - looks better for small cell values
+}
+
+@mixin flip-table() {
+ display: flex;
+ overflow: hidden;
+
+ thead, tbody {
+ display: flex;
+ }
+
+ thead {
+ flex-shrink: 0;
+ min-width: min-content;
+ border-left: 1px solid var(--border-color);
+ border-bottom: 1px solid var(--border-color);
+
+ th {
+ padding-left: 1em;
+ }
+ }
+
+ tbody {
+ position: relative;
+ overflow-x: auto;
+ overflow-y: hidden;
+ -webkit-overflow-scrolling: touch;
+ }
+
+ tr {
+ display: flex;
+ flex-direction: column;
+ min-width: min-content;
+ flex-shrink: 0;
+
+ &:last-child {
+ border-right: 1px solid var(--border-color);
+ td {
+ padding-right: 1em;
+ }
+ }
+ }
+
+ td, th {
+ display: block;
+
+ &:first-child {
+ padding-left: .5em;
+ border-left: none;
+ }
+
+ &:last-child {
+ padding-right: .5em;
+ border-right: none;
+ }
+ }
+}
+
+table.stretch-table {
+ display: table;
+ width: 100% !important;
+ width: calc(100% + 2em) !important;
+ // @media screen and (max-width: $break-point-4) {
+ // display: block!important;
+ // @include scroll-table();
+ // }
+}
+
+table.scroll-table {
+ @include scroll-table();
+}
+
+table.flip-table {
+ @include flip-table();
+}
+
+@media screen and (max-width: $break-point-4) {
+ table.scroll-table-small {
+ @include scroll-table();
+ }
+
+ table.flip-table-small {
+ @include flip-table();
+ }
+}
+
+@media print {
+ table:not(.rouge-table) {
+ width: 100%!important;
+ }
+}
+// >>>>> LINK
diff --git a/_sass/pooleparty/_type.pre.scss b/_sass/pooleparty/_type.pre.scss
new file mode 100644
index 0000000..0f043ec
--- /dev/null
+++ b/_sass/pooleparty/_type.pre.scss
@@ -0,0 +1,260 @@
+// Copyright (c) 2017 Florian Klampfer
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
.
+
+.heading {
+ font-family: var(--font-family-heading);
+ font-weight: var(--font-weight-heading);
+}
+
+.f1 {
+ @extend .heading;
+ font-size: 2rem;
+ line-height: 1.3;
+}
+
+.f2 {
+ @extend .heading;
+ font-size: 1.5rem;
+ line-height: 1.4;
+}
+
+.f3 {
+ @extend .heading;
+ font-size: 1.2em;
+ line-height: 1.5;
+}
+
+.f4 {
+ @extend .heading;
+ font-size: 1.08rem;
+ line-height: 1.6;
+}
+
+.f5 {
+ @extend .heading;
+ font-size: 1.04rem;
+ line-height: 1.7;
+}
+
+.f6 {
+ @extend .heading;
+ font-size: 1rem;
+}
+
+// <<< INLINE
+h1, .h1 { @extend .f1; }
+h2, .h2 { @extend .f2; }
+h3, .h3 { @extend .f3; }
+h4, .h4 { @extend .f4; }
+h5, .h5 { @extend .f5; }
+h6, .h6 { @extend .f6; }
+
+.content {
+ h1, .h1 {
+ > a { text-decoration: none; border-bottom: none; }
+ @media screen and (max-width: $break-point-1) {
+ font-size: 1.7rem;
+ line-height: 1.35;
+ }
+ @media screen and (min-width: $break-point-5) {
+ font-size: 2.4rem;
+ line-height: 1.25;
+ }
+ }
+}
+
+body:not(.no-large-headings) {
+ .content {
+ h1, .h1 {
+ @media screen and (min-width: $break-point-dynamic) {
+ width: calc(100% + 50vw - 32rem);
+ font-size: 3rem;
+ line-height: 1.2;
+ }
+ @media screen and (min-width: $break-point-font-large) {
+ font-size: 4rem;
+ line-height: 1.1;
+ }
+ }
+ }
+}
+
+h1, h2, h3, .h1, .h2, .h3 {
+ margin: 4rem 0 1rem;
+}
+
+h4, h5, h6, .h4, .h5, .h6 {
+ margin: 3rem 0 .5rem;
+}
+
+p {
+ margin-top: 0;
+ margin-bottom: 1rem;
+
+ &.lead {
+ font-size: 1.2em;
+ margin-top: 1.5rem;
+ margin-bottom: 1.5rem;
+ padding: 0 1rem;
+ }
+}
+
+ul, ol, dl {
+ margin-top: 0;
+ margin-bottom: 1rem;
+}
+
+ul, ol {
+ padding-left: 1.25rem;
+}
+
+hr, .hr {
+ @extend .color-transition;
+ border: 0;
+ margin: 1rem 0;
+ border-top: 1px solid var(--border-color);
+}
+
+.hr-after::after {
+ @extend .color-transition;
+ content: "";
+ display: block;
+ margin: 1rem 0;
+ border-top: 1px solid var(--border-color);
+}
+
+.hr-bottom {
+ @extend .color-transition;
+ border-bottom: 1px solid var(--border-color);
+ padding-bottom: .75rem;
+ margin-bottom: 1rem;
+}
+
+// >>>>>
+
+// <<<<< LINK
+h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, .heading {
+ text-rendering: optimizeLegibility;
+}
+
+h1 + h2, .h1 + .h2, h1 + .h2, .h1 + h2,
+h2 + h3, .h2 + .h3, h2 + .h3, .h2 + h3,
+h3 + h4, .h3 + .h4, h3 + .h4, .h3 + h4,
+h4 + h5, .h4 + .h5, h4 + .h5, .h4 + h5,
+h5 + h6, .h5 + .h6, h5 + .h6, .h5 + h6 {
+ margin-top: 0;
+}
+
+dt, strong {
+ font-weight: var(--font-weight-bold);
+}
+
+dt:after{
+ content: " :";
+ color: var(--menu-text);
+}
+
+dd {
+ margin-bottom: .5rem;
+}
+
+abbr {
+ font-size: 85%;
+ font-weight: var(--font-weight-bold);
+ text-transform: uppercase;
+
+ &[title] {
+ cursor: help;
+ border-bottom: 1px dotted var(--border-color);
+ }
+}
+
+blockquote {
+ @extend .color-transition;
+ padding: .5rem 1rem;
+ margin: .8rem 0;
+ color: var(--gray);
+ border-left: .25rem solid var(--border-color);
+
+ &.lead {
+ font-size: 1.2em;
+ margin-top: 1.5rem;
+ margin-bottom: 1.5rem;
+ border-left-width: 0.4rem;
+ }
+
+ > p:last-child {
+ margin-bottom: 0;
+ }
+}
+
+.heading {
+ font-weight: var(--font-weight-heading);
+}
+
+.fine, .smaller {
+ font-size: smaller;
+}
+
+.faded {
+ @extend .color-transition;
+ color: var(--gray);
+}
+
+.centered {
+ text-align: center;
+}
+
+h1[id], h2[id], h3[id], h4[id], h5[id], h6[id] {
+ position: relative;
+
+ > .permalink {
+ text-decoration: none;
+ border: none;
+ opacity: 0;
+ transition: opacity 400ms;
+
+ @media print {
+ display: none;
+ }
+ }
+
+ &:hover > .permalink {
+ opacity: 0.5;
+ }
+
+ & > .permalink:hover,
+ & > .permalink:focus {
+ opacity: 1;
+ transition: opacity 200ms;
+ }
+}
+
+.content-hash::before {
+ content: '#'
+}
+.content-json::before {
+ content: '{}'
+}
+
+@media print {
+ h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, dt {
+ page-break-inside: avoid;
+ break-inside: avoid-page;
+ page-break-after: avoid;
+ break-after: avoid-page;
+ }
+}
+// >>> LINK
diff --git a/_sass/pro/_dark-mode-dynamic-syntax.scss b/_sass/pro/_dark-mode-dynamic-syntax.scss
new file mode 100644
index 0000000..328c1cf
--- /dev/null
+++ b/_sass/pro/_dark-mode-dynamic-syntax.scss
@@ -0,0 +1,9 @@
+// Copyright (c) 2019 Florian Klampfer
+
+@import "pro/syntax-dark";
+
+@media screen and (prefers-color-scheme: dark) {
+ body {
+ @include darkmode-syntax();
+ }
+}
\ No newline at end of file
diff --git a/_sass/pro/_dark-mode-dynamic.scss b/_sass/pro/_dark-mode-dynamic.scss
new file mode 100644
index 0000000..77939d8
--- /dev/null
+++ b/_sass/pro/_dark-mode-dynamic.scss
@@ -0,0 +1,20 @@
+// Copyright (c) 2019 Florian Klampfer
+
+@import "pro/dark-mode";
+
+@media screen and (prefers-color-scheme: light) {
+ body {
+ @include light-mode();
+ }
+}
+
+@media screen and (prefers-color-scheme: dark) {
+ body {
+ @include dark-mode();
+ }
+
+ .tippy-content {
+ -webkit-font-smoothing: initial;
+ -moz-osx-font-smoothing: initial;
+ }
+}
diff --git a/_sass/pro/_dark-mode.scss b/_sass/pro/_dark-mode.scss
new file mode 100644
index 0000000..7431b63
--- /dev/null
+++ b/_sass/pro/_dark-mode.scss
@@ -0,0 +1,32 @@
+// Copyright (c) 2019 Florian Klampfer
+
+#_dark-mode {
+ font-size: 1.25rem;
+}
+
+@mixin dark-mode() {
+ --body-color: #ccc;
+ --body-bg: var(--dark-mode-body-bg);
+ --border-color: var(--dark-mode-border-color);
+ --gray: rgba(255,255,255,.5);
+ --gray-bg: rgba(255,255,255,.033);
+ --gray-text: rgba(255,255,255,.625);
+ --menu-text: rgba(255,255,255,.25);
+ --inv-body-color: #{$body-color};
+ --inv-body-bg: #{$body-bg};
+
+ .content {
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ }
+}
+
+@media screen {
+ body, body.light-mode {
+ @include light-mode();
+ }
+
+ body.dark-mode {
+ @include dark-mode();
+ }
+}
diff --git a/_sass/pro/_syntax-dark.scss b/_sass/pro/_syntax-dark.scss
new file mode 100644
index 0000000..9b007af
--- /dev/null
+++ b/_sass/pro/_syntax-dark.scss
@@ -0,0 +1,139 @@
+@mixin darkmode-syntax {
+ .highlight,
+ pre.highlight {
+ // background: #282c34;
+ color: #abb2bf;
+ }
+ // .highlight pre {
+ // background: #282c34;
+ // }
+ .highlight .ge {
+ font-style: italic;
+ }
+ .highlight .gs {
+ font-weight: 700;
+ }
+ .highlight .ow {
+ font-weight: 700;
+ }
+ .highlight .n,
+ .highlight .nf,
+ .highlight .nn,
+ .highlight .o,
+ .highlight .p {
+ color: #abb2bf;
+ }
+ .highlight .c,
+ .highlight .c1,
+ .highlight .cm,
+ .highlight .cp,
+ .highlight .cs {
+ color: #5c6370;
+ font-style: italic;
+ }
+ .highlight .sr,
+ .highlight .ss {
+ color: #56b6c2;
+ }
+ .highlight .k,
+ .highlight .kc,
+ .highlight .kd,
+ .highlight .kn,
+ .highlight .kp,
+ .highlight .kr,
+ .highlight .kt {
+ color: #c678dd;
+ }
+ .highlight .l,
+ .highlight .ld,
+ .highlight .s,
+ .highlight .s1,
+ .highlight .s2,
+ .highlight .sb,
+ .highlight .sc,
+ .highlight .sd,
+ .highlight .se,
+ .highlight .sh,
+ .highlight .si,
+ .highlight .sx {
+ color: #98c379;
+ }
+ .highlight .nt,
+ .highlight .nx,
+ .highlight .vi {
+ color: #e06c75;
+ }
+ .highlight .il,
+ .highlight .m,
+ .highlight .mf,
+ .highlight .mh,
+ .highlight .mi,
+ .highlight .mo,
+ .highlight .na {
+ color: #d19a66;
+ }
+ .highlight .bp,
+ .highlight .nb,
+ .highlight .nc,
+ .highlight .nd,
+ .highlight .ne,
+ .highlight .ni,
+ .highlight .nl,
+ .highlight .no,
+ .highlight .nv,
+ .highlight .py,
+ .highlight .vc,
+ .highlight .vg {
+ color: #e5c07b;
+ }
+ // .highlight .err {
+ // color: #fff;
+ // background-color: #e05252;
+ // }
+ .highlight .gd {
+ color: #e05252;
+ }
+ .highlight .gi {
+ color: #43d08a;
+ }
+ .highlight .w {
+ color: #f8f8f2;
+ }
+ .highlight .cpf {
+ color: navy;
+ }
+ .highlight .gu {
+ color: #75715e;
+ }
+ .highlight .lineno {
+ color: #636d83;
+ user-select: none;
+ }
+ .highlight .ln {
+ color: #636d83;
+ user-select: none;
+ }
+ .highlight .ln:after {
+ content: " ";
+ }
+ .highlight .hll {
+ color: #abb2bf;
+ background-color: #3a3f4b;
+ }
+ .highlight .hl {
+ color: #abb2bf;
+ background-color: #3a3f4b;
+ }
+ .highlight .language-json .w + .s2 {
+ color: #e06c75;
+ }
+ .highlight .language-json .kc {
+ color: #56b6c2;
+ }
+}
+
+@media screen {
+ body.dark-mode {
+ @include darkmode-syntax();
+ }
+}
\ No newline at end of file
diff --git a/_sass/tippyjs/_mixins.scss b/_sass/tippyjs/_mixins.scss
new file mode 100644
index 0000000..4bd4915
--- /dev/null
+++ b/_sass/tippyjs/_mixins.scss
@@ -0,0 +1,25 @@
+@mixin backdrop-transform-enter($placement) {
+ $scale: 1;
+ @if ($placement == 'top') {
+ transform: scale($scale) translate(-50%, -55%);
+ } @else if ($placement == 'bottom') {
+ transform: scale($scale) translate(-50%, -45%);
+ } @else if ($placement == 'left') {
+ transform: scale($scale) translate(-50%, -50%);
+ } @else if ($placement == 'right') {
+ transform: scale($scale) translate(-50%, -50%);
+ }
+}
+
+@mixin backdrop-transform-leave($placement) {
+ $scale: 0.2;
+ @if ($placement == 'top') {
+ transform: scale($scale) translate(-50%, -45%);
+ } @else if ($placement == 'bottom') {
+ transform: scale($scale) translate(-50%, 0);
+ } @else if ($placement == 'left') {
+ transform: scale($scale) translate(-75%, -50%);
+ } @else if ($placement == 'right') {
+ transform: scale($scale) translate(-25%, -50%);
+ }
+}
diff --git a/_sass/tippyjs/_vars.scss b/_sass/tippyjs/_vars.scss
new file mode 100644
index 0000000..7f0b774
--- /dev/null
+++ b/_sass/tippyjs/_vars.scss
@@ -0,0 +1,6 @@
+$namespace-prefix: '__NAMESPACE_PREFIX__' !default;
+$placements: 'top', 'bottom', 'left', 'right';
+$origins: bottom, top, right, left;
+$backdrop-origins: 0% 25%, 0% -50%, 50% 0%, -50% 0%;
+$backdrop-border-radii: 40% 40% 0 0, 0 0 30% 30%, 50% 0 0 50%, 0 50% 50% 0;
+$arrow-size: 16px;
diff --git a/_sass/tippyjs/animations/fade.scss b/_sass/tippyjs/animations/fade.scss
new file mode 100644
index 0000000..6d8eb4c
--- /dev/null
+++ b/_sass/tippyjs/animations/fade.scss
@@ -0,0 +1,9 @@
+@use '../_mixins.scss';
+@forward '../_vars.scss' show $namespace-prefix;
+@use '../_vars.scss';
+
+.#{vars.$namespace-prefix}-box {
+ &[data-animation='fade'][data-state='hidden'] {
+ opacity: 0;
+ }
+}
diff --git a/_sass/tippyjs/index.scss b/_sass/tippyjs/index.scss
new file mode 100644
index 0000000..1244d4d
--- /dev/null
+++ b/_sass/tippyjs/index.scss
@@ -0,0 +1,91 @@
+@forward '_vars.scss' show $namespace-prefix;
+@use '_vars.scss';
+@forward 'animations/fade.scss' show $namespace-prefix;
+
+$color: #333;
+
+[data-#{vars.$namespace-prefix}-root] {
+ max-width: calc(100vw - 10px);
+}
+
+.#{vars.$namespace-prefix}-box {
+ position: relative;
+ background-color: $color;
+ color: white;
+ border-radius: 4px;
+ font-size: 14px;
+ line-height: 1.4;
+ outline: 0;
+ transition-property: transform, visibility, opacity;
+
+ &[data-placement^='top'] > .#{vars.$namespace-prefix}-arrow {
+ bottom: 0;
+
+ &::before {
+ bottom: -7px;
+ left: 0;
+ border-width: 8px 8px 0;
+ border-top-color: initial;
+ transform-origin: center top;
+ }
+ }
+
+ &[data-placement^='bottom'] > .#{vars.$namespace-prefix}-arrow {
+ top: 0;
+
+ &::before {
+ top: -7px;
+ left: 0;
+ border-width: 0 8px 8px;
+ border-bottom-color: initial;
+ transform-origin: center bottom;
+ }
+ }
+
+ &[data-placement^='left'] > .#{vars.$namespace-prefix}-arrow {
+ right: 0;
+
+ &::before {
+ border-width: 8px 0 8px 8px;
+ border-left-color: initial;
+ right: -7px;
+ transform-origin: center left;
+ }
+ }
+
+ &[data-placement^='right'] > .#{vars.$namespace-prefix}-arrow {
+ left: 0;
+
+ &::before {
+ left: -7px;
+ border-width: 8px 8px 8px 0;
+ border-right-color: initial;
+ transform-origin: center right;
+ }
+ }
+
+ &[data-inertia][data-state='visible'] {
+ transition-timing-function: cubic-bezier(0.54, 1.5, 0.38, 1.11);
+ }
+}
+
+.#{vars.$namespace-prefix}-arrow {
+ & {
+ width: vars.$arrow-size;
+ height: vars.$arrow-size;
+ color: $color;
+ }
+
+ &::before {
+ content: '';
+ position: absolute;
+ border-color: transparent;
+ border-style: solid;
+ }
+}
+
+.#{vars.$namespace-prefix}-content {
+ position: relative;
+ padding: 5px 9px;
+ z-index: 1;
+}
diff --git a/arty.yml b/arty.yml
new file mode 100644
index 0000000..cbf46b1
--- /dev/null
+++ b/arty.yml
@@ -0,0 +1,5 @@
+name: "pivoine.art"
+version: "1.0.0"
+description: "Valknar's Pivoine.Art"
+author: "valknar@pivoine.art"
+license: "private"
diff --git a/assets/bg/bunker.mp4 b/assets/bg/bunker.mp4
new file mode 100644
index 0000000..4e0503f
Binary files /dev/null and b/assets/bg/bunker.mp4 differ
diff --git a/assets/bg/bunker.webp b/assets/bg/bunker.webp
new file mode 100644
index 0000000..a567b6b
Binary files /dev/null and b/assets/bg/bunker.webp differ
diff --git a/assets/bg/hypertown.mp4 b/assets/bg/hypertown.mp4
new file mode 100644
index 0000000..2647254
Binary files /dev/null and b/assets/bg/hypertown.mp4 differ
diff --git a/assets/bg/hypertown.webp b/assets/bg/hypertown.webp
new file mode 100644
index 0000000..33a64f2
Binary files /dev/null and b/assets/bg/hypertown.webp differ
diff --git a/assets/bg/ragnarok.mp4 b/assets/bg/ragnarok.mp4
new file mode 100644
index 0000000..f9ac9c9
Binary files /dev/null and b/assets/bg/ragnarok.mp4 differ
diff --git a/assets/bg/ragnarok.webp b/assets/bg/ragnarok.webp
new file mode 100644
index 0000000..c0e4e2b
Binary files /dev/null and b/assets/bg/ragnarok.webp differ
diff --git a/assets/bg/thor.webp b/assets/bg/thor.webp
new file mode 100644
index 0000000..e36d5ac
Binary files /dev/null and b/assets/bg/thor.webp differ
diff --git a/assets/bower.json b/assets/bower.json
new file mode 100644
index 0000000..07a0bee
--- /dev/null
+++ b/assets/bower.json
@@ -0,0 +1,12 @@
+{
+ "name": "pivoine-assets",
+ "homepage": "https://pivoine.com/",
+ "author": "Florian Klampfer
(https://qwtel.com/)",
+ "license": "MIT",
+ "private": true,
+ "dependencies": {
+ "html5shiv": "^3.7.3",
+ "katex": "^0.11.1",
+ "MathJax": "^3.1.2"
+ }
+}
diff --git a/assets/bower_components/MathJax/.bower.json b/assets/bower_components/MathJax/.bower.json
new file mode 100644
index 0000000..db86787
--- /dev/null
+++ b/assets/bower_components/MathJax/.bower.json
@@ -0,0 +1,18 @@
+{
+ "name": "MathJax",
+ "main": "./MathJax.js",
+ "homepage": "http://www.mathjax.org/",
+ "ignore": ["**/.*", "node_modules", "components"],
+ "keywords": ["math", "js", "LaTeX", "MathML", "AsciiMath"],
+ "version": "3.1.2",
+ "_release": "3.1.2",
+ "_resolution": {
+ "type": "version",
+ "tag": "3.1.2",
+ "commit": "c8292351190ce249f7143f224dbe7a190c8228fe"
+ },
+ "_source": "https://github.com/mathjax/MathJax.git",
+ "_target": "^3.1.2",
+ "_originalSource": "MathJax",
+ "_direct": true
+}
diff --git a/assets/bower_components/MathJax/LICENSE b/assets/bower_components/MathJax/LICENSE
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/assets/bower_components/MathJax/LICENSE
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/assets/bower_components/MathJax/bower.json b/assets/bower_components/MathJax/bower.json
new file mode 100644
index 0000000..8b78472
--- /dev/null
+++ b/assets/bower_components/MathJax/bower.json
@@ -0,0 +1,7 @@
+{
+ "name": "MathJax",
+ "main": "./MathJax.js",
+ "homepage": "http://www.mathjax.org/",
+ "ignore": ["**/.*", "node_modules", "components"],
+ "keywords": ["math", "js", "LaTeX", "MathML", "AsciiMath"]
+}
diff --git a/assets/bower_components/MathJax/composer.json b/assets/bower_components/MathJax/composer.json
new file mode 100644
index 0000000..e14f148
--- /dev/null
+++ b/assets/bower_components/MathJax/composer.json
@@ -0,0 +1,14 @@
+{
+ "name": "mathjax/mathjax",
+ "type": "library",
+ "description": "MathJax is an open-source JavaScript display engine for LaTeX, MathML, and AsciiMath notation that works in all modern browsers.",
+ "keywords": ["math", "js", "LaTeX", "MathML", "AsciiMath"],
+ "homepage": "http://www.mathjax.org/",
+ "license": "Apache-2.0",
+ "authors": [
+ {
+ "name": "MathJax Consortium",
+ "homepage": "https://github.com/mathjax"
+ }
+ ]
+}
diff --git a/assets/bower_components/MathJax/es5/a11y/assistive-mml.js b/assets/bower_components/MathJax/es5/a11y/assistive-mml.js
new file mode 100644
index 0000000..5aac82c
--- /dev/null
+++ b/assets/bower_components/MathJax/es5/a11y/assistive-mml.js
@@ -0,0 +1,360 @@
+!(function (t) {
+ var e = {};
+ function i(n) {
+ if (e[n]) return e[n].exports;
+ var o = (e[n] = { i: n, l: !1, exports: {} });
+ return t[n].call(o.exports, o, o.exports, i), (o.l = !0), o.exports;
+ }
+ (i.m = t),
+ (i.c = e),
+ (i.d = function (t, e, n) {
+ i.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: n });
+ }),
+ (i.r = function (t) {
+ "undefined" != typeof Symbol &&
+ Symbol.toStringTag &&
+ Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }),
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ }),
+ (i.t = function (t, e) {
+ if ((1 & e && (t = i(t)), 8 & e)) return t;
+ if (4 & e && "object" == typeof t && t && t.__esModule) return t;
+ var n = Object.create(null);
+ if (
+ (i.r(n),
+ Object.defineProperty(n, "default", { enumerable: !0, value: t }),
+ 2 & e && "string" != typeof t)
+ )
+ for (var o in t)
+ i.d(
+ n,
+ o,
+ function (e) {
+ return t[e];
+ }.bind(null, o),
+ );
+ return n;
+ }),
+ (i.n = function (t) {
+ var e =
+ t && t.__esModule
+ ? function () {
+ return t.default;
+ }
+ : function () {
+ return t;
+ };
+ return i.d(e, "a", e), e;
+ }),
+ (i.o = function (t, e) {
+ return Object.prototype.hasOwnProperty.call(t, e);
+ }),
+ (i.p = ""),
+ i((i.s = 5));
+})([
+ function (t, e, i) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function i() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((i.prototype = e.prototype), new i()));
+ }),
+ r =
+ (this && this.__assign) ||
+ function () {
+ return (r =
+ Object.assign ||
+ function (t) {
+ for (var e, i = 1, n = arguments.length; i < n; i++)
+ for (var o in (e = arguments[i]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ },
+ s =
+ (this && this.__read) ||
+ function (t, e) {
+ var i = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!i) return t;
+ var n,
+ o,
+ r = i.call(t),
+ s = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(n = r.next()).done; )
+ s.push(n.value);
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ n && !n.done && (i = r.return) && i.call(r);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ return s;
+ },
+ a =
+ (this && this.__spread) ||
+ function () {
+ for (var t = [], e = 0; e < arguments.length; e++)
+ t = t.concat(s(arguments[e]));
+ return t;
+ },
+ l =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ i = e && t[e],
+ n = 0;
+ if (i) return i.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.AssistiveMmlHandler =
+ e.AssistiveMmlMathDocumentMixin =
+ e.AssistiveMmlMathItemMixin =
+ e.LimitedMmlVisitor =
+ void 0);
+ var u = i(2),
+ c = i(3),
+ p = i(4),
+ h = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ (e.prototype.getAttributes = function (e) {
+ return t.prototype.getAttributes
+ .call(this, e)
+ .replace(/ ?id=".*?"/, "");
+ }),
+ e
+ );
+ })(c.SerializedMmlVisitor);
+ function m(t) {
+ return (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ (e.prototype.assistiveMml = function (t, e) {
+ if (
+ (void 0 === e && (e = !1),
+ !(this.state() >= u.STATE.ASSISTIVEMML))
+ ) {
+ if (!this.isEscaped && (t.options.enableAssistiveMml || e)) {
+ var i = t.adaptor,
+ n = t
+ .toMML(this.root)
+ .replace(/\n */g, "")
+ .replace(//g, ""),
+ o = i.firstChild(i.body(i.parse(n, "text/html"))),
+ r = i.node(
+ "mjx-assistive-mml",
+ {
+ role: "presentation",
+ unselectable: "on",
+ display: this.display ? "block" : "inline",
+ },
+ [o],
+ );
+ i.setAttribute(this.typesetRoot, "role", "presentation"),
+ i.setAttribute(
+ i.firstChild(this.typesetRoot),
+ "aria-hidden",
+ "true",
+ ),
+ i.setStyle(this.typesetRoot, "position", "relative"),
+ i.append(this.typesetRoot, r);
+ }
+ this.state(u.STATE.ASSISTIVEMML);
+ }
+ }),
+ e
+ );
+ })(t);
+ }
+ function f(t) {
+ var e;
+ return (
+ ((e = (function (t) {
+ function e() {
+ for (var e = [], i = 0; i < arguments.length; i++)
+ e[i] = arguments[i];
+ var n = t.apply(this, a(e)) || this,
+ o = n.constructor,
+ r = o.ProcessBits;
+ return (
+ r.has("assistive-mml") || r.allocate("assistive-mml"),
+ (n.visitor = new h(n.mmlFactory)),
+ (n.options.MathItem = m(n.options.MathItem)),
+ "addStyles" in n && n.addStyles(o.assistiveStyles),
+ n
+ );
+ }
+ return (
+ o(e, t),
+ (e.prototype.toMML = function (t) {
+ return this.visitor.visitTree(t);
+ }),
+ (e.prototype.assistiveMml = function () {
+ var t, e;
+ if (!this.processed.isSet("assistive-mml")) {
+ try {
+ for (
+ var i = l(this.math), n = i.next();
+ !n.done;
+ n = i.next()
+ ) {
+ n.value.assistiveMml(this);
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ n && !n.done && (e = i.return) && e.call(i);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ this.processed.set("assistive-mml");
+ }
+ return this;
+ }),
+ (e.prototype.state = function (e, i) {
+ return (
+ void 0 === i && (i = !1),
+ t.prototype.state.call(this, e, i),
+ e < u.STATE.ASSISTIVEMML &&
+ this.processed.clear("assistive-mml"),
+ this
+ );
+ }),
+ e
+ );
+ })(t)).OPTIONS = r(r({}, t.OPTIONS), {
+ enableAssistiveMml: !0,
+ renderActions: p.expandable(
+ r(r({}, t.OPTIONS.renderActions), {
+ assistiveMml: [u.STATE.ASSISTIVEMML],
+ }),
+ ),
+ })),
+ (e.assistiveStyles = {
+ "mjx-assistive-mml": {
+ position: "absolute !important",
+ top: "0px",
+ left: "0px",
+ clip: "rect(1px, 1px, 1px, 1px)",
+ padding: "1px 0px 0px 0px !important",
+ border: "0px !important",
+ display: "block !important",
+ width: "auto !important",
+ overflow: "hidden !important",
+ "-webkit-touch-callout": "none",
+ "-webkit-user-select": "none",
+ "-khtml-user-select": "none",
+ "-moz-user-select": "none",
+ "-ms-user-select": "none",
+ "user-select": "none",
+ },
+ 'mjx-assistive-mml[display="block"]': { width: "100% !important" },
+ }),
+ e
+ );
+ }
+ (e.LimitedMmlVisitor = h),
+ u.newState("ASSISTIVEMML", 153),
+ (e.AssistiveMmlMathItemMixin = m),
+ (e.AssistiveMmlMathDocumentMixin = f),
+ (e.AssistiveMmlHandler = function (t) {
+ return (t.documentClass = f(t.documentClass)), t;
+ });
+ },
+ function (t, e, i) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.isObject = MathJax._.components.global.isObject),
+ (e.combineConfig = MathJax._.components.global.combineConfig),
+ (e.combineDefaults = MathJax._.components.global.combineDefaults),
+ (e.combineWithMathJax = MathJax._.components.global.combineWithMathJax),
+ (e.MathJax = MathJax._.components.global.MathJax);
+ },
+ function (t, e, i) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.protoItem = MathJax._.core.MathItem.protoItem),
+ (e.AbstractMathItem = MathJax._.core.MathItem.AbstractMathItem),
+ (e.STATE = MathJax._.core.MathItem.STATE),
+ (e.newState = MathJax._.core.MathItem.newState);
+ },
+ function (t, e, i) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.DATAMJX = MathJax._.core.MmlTree.SerializedMmlVisitor.DATAMJX),
+ (e.toEntity = MathJax._.core.MmlTree.SerializedMmlVisitor.toEntity),
+ (e.SerializedMmlVisitor =
+ MathJax._.core.MmlTree.SerializedMmlVisitor.SerializedMmlVisitor);
+ },
+ function (t, e, i) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.APPEND = MathJax._.util.Options.APPEND),
+ (e.REMOVE = MathJax._.util.Options.REMOVE),
+ (e.Expandable = MathJax._.util.Options.Expandable),
+ (e.expandable = MathJax._.util.Options.expandable),
+ (e.makeArray = MathJax._.util.Options.makeArray),
+ (e.keys = MathJax._.util.Options.keys),
+ (e.copy = MathJax._.util.Options.copy),
+ (e.insert = MathJax._.util.Options.insert),
+ (e.defaultOptions = MathJax._.util.Options.defaultOptions),
+ (e.userOptions = MathJax._.util.Options.userOptions),
+ (e.selectOptions = MathJax._.util.Options.selectOptions),
+ (e.selectOptionsFromKeys = MathJax._.util.Options.selectOptionsFromKeys),
+ (e.separateOptions = MathJax._.util.Options.separateOptions);
+ },
+ function (t, e, i) {
+ "use strict";
+ i.r(e);
+ var n = i(1),
+ o = i(0);
+ Object(n.combineWithMathJax)({ _: { a11y: { "assistive-mml": o } } }),
+ MathJax.startup &&
+ MathJax.startup.extendHandler(function (t) {
+ return Object(o.AssistiveMmlHandler)(t);
+ });
+ },
+]);
diff --git a/assets/bower_components/MathJax/es5/a11y/complexity.js b/assets/bower_components/MathJax/es5/a11y/complexity.js
new file mode 100644
index 0000000..54a4ef1
--- /dev/null
+++ b/assets/bower_components/MathJax/es5/a11y/complexity.js
@@ -0,0 +1,1026 @@
+!(function (t) {
+ var e = {};
+ function i(o) {
+ if (e[o]) return e[o].exports;
+ var r = (e[o] = { i: o, l: !1, exports: {} });
+ return t[o].call(r.exports, r, r.exports, i), (r.l = !0), r.exports;
+ }
+ (i.m = t),
+ (i.c = e),
+ (i.d = function (t, e, o) {
+ i.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: o });
+ }),
+ (i.r = function (t) {
+ "undefined" != typeof Symbol &&
+ Symbol.toStringTag &&
+ Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }),
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ }),
+ (i.t = function (t, e) {
+ if ((1 & e && (t = i(t)), 8 & e)) return t;
+ if (4 & e && "object" == typeof t && t && t.__esModule) return t;
+ var o = Object.create(null);
+ if (
+ (i.r(o),
+ Object.defineProperty(o, "default", { enumerable: !0, value: t }),
+ 2 & e && "string" != typeof t)
+ )
+ for (var r in t)
+ i.d(
+ o,
+ r,
+ function (e) {
+ return t[e];
+ }.bind(null, r),
+ );
+ return o;
+ }),
+ (i.n = function (t) {
+ var e =
+ t && t.__esModule
+ ? function () {
+ return t.default;
+ }
+ : function () {
+ return t;
+ };
+ return i.d(e, "a", e), e;
+ }),
+ (i.o = function (t, e) {
+ return Object.prototype.hasOwnProperty.call(t, e);
+ }),
+ (i.p = ""),
+ i((i.s = 9));
+})([
+ function (t, e, i) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.isObject = MathJax._.components.global.isObject),
+ (e.combineConfig = MathJax._.components.global.combineConfig),
+ (e.combineDefaults = MathJax._.components.global.combineDefaults),
+ (e.combineWithMathJax = MathJax._.components.global.combineWithMathJax),
+ (e.MathJax = MathJax._.components.global.MathJax);
+ },
+ function (t, e, i) {
+ "use strict";
+ var o,
+ r =
+ (this && this.__extends) ||
+ ((o = function (t, e) {
+ return (o =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function i() {
+ this.constructor = t;
+ }
+ o(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((i.prototype = e.prototype), new i()));
+ }),
+ n =
+ (this && this.__assign) ||
+ function () {
+ return (n =
+ Object.assign ||
+ function (t) {
+ for (var e, i = 1, o = arguments.length; i < o; i++)
+ for (var r in (e = arguments[i]))
+ Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]);
+ return t;
+ }).apply(this, arguments);
+ },
+ s =
+ (this && this.__read) ||
+ function (t, e) {
+ var i = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!i) return t;
+ var o,
+ r,
+ n = i.call(t),
+ s = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(o = n.next()).done; )
+ s.push(o.value);
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ o && !o.done && (i = n.return) && i.call(n);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ return s;
+ },
+ l =
+ (this && this.__spread) ||
+ function () {
+ for (var t = [], e = 0; e < arguments.length; e++)
+ t = t.concat(s(arguments[e]));
+ return t;
+ },
+ a =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ i = e && t[e],
+ o = 0;
+ if (i) return i.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && o >= t.length && (t = void 0),
+ { value: t && t[o++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.ComplexityHandler =
+ e.ComplexityMathDocumentMixin =
+ e.ComplexityMathItemMixin =
+ void 0);
+ var c = i(7),
+ p = i(2),
+ u = i(3),
+ h = i(5);
+ function y(t, e) {
+ return (function (t) {
+ function i() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ r(i, t),
+ (i.prototype.complexity = function (t, i) {
+ void 0 === i && (i = !1),
+ this.state() >= c.STATE.COMPLEXITY ||
+ (this.isEscaped ||
+ (!t.options.enableComplexity && !i) ||
+ (this.enrich(t, !0), e(this.root)),
+ this.state(c.STATE.COMPLEXITY));
+ }),
+ i
+ );
+ })(t);
+ }
+ function d(t) {
+ var e;
+ return (
+ ((e = (function (t) {
+ function e() {
+ for (var e = [], i = 0; i < arguments.length; i++)
+ e[i] = arguments[i];
+ var o = t.apply(this, l(e)) || this,
+ r = o.constructor.ProcessBits;
+ r.has("complexity") || r.allocate("complexity");
+ var n = h.selectOptionsFromKeys(
+ o.options,
+ o.options.ComplexityVisitor.OPTIONS,
+ );
+ o.complexityVisitor = new o.options.ComplexityVisitor(
+ o.mmlFactory,
+ n,
+ );
+ var s = function (t) {
+ return o.complexityVisitor.visitTree(t);
+ };
+ return (o.options.MathItem = y(o.options.MathItem, s)), o;
+ }
+ return (
+ r(e, t),
+ (e.prototype.complexity = function () {
+ var t, e;
+ if (!this.processed.isSet("complexity")) {
+ if (this.options.enableComplexity)
+ try {
+ for (
+ var i = a(this.math), o = i.next();
+ !o.done;
+ o = i.next()
+ ) {
+ o.value.complexity(this);
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ o && !o.done && (e = i.return) && e.call(i);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ this.processed.set("complexity");
+ }
+ return this;
+ }),
+ (e.prototype.state = function (e, i) {
+ return (
+ void 0 === i && (i = !1),
+ t.prototype.state.call(this, e, i),
+ e < c.STATE.COMPLEXITY && this.processed.clear("complexity"),
+ this
+ );
+ }),
+ e
+ );
+ })(t)).OPTIONS = n(n(n({}, t.OPTIONS), u.ComplexityVisitor.OPTIONS), {
+ enableComplexity: !0,
+ ComplexityVisitor: u.ComplexityVisitor,
+ renderActions: h.expandable(
+ n(n({}, t.OPTIONS.renderActions), {
+ complexity: [c.STATE.COMPLEXITY],
+ }),
+ ),
+ })),
+ e
+ );
+ }
+ c.newState("COMPLEXITY", 40),
+ (e.ComplexityMathItemMixin = y),
+ (e.ComplexityMathDocumentMixin = d),
+ (e.ComplexityHandler = function (t, e) {
+ return (
+ void 0 === e && (e = null),
+ !t.documentClass.prototype.enrich && e && (t = p.EnrichHandler(t, e)),
+ (t.documentClass = d(t.documentClass)),
+ t
+ );
+ });
+ },
+ function (t, e, i) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.EnrichedMathItemMixin =
+ MathJax._.a11y["semantic-enrich"].EnrichedMathItemMixin),
+ (e.EnrichedMathDocumentMixin =
+ MathJax._.a11y["semantic-enrich"].EnrichedMathDocumentMixin),
+ (e.EnrichHandler = MathJax._.a11y["semantic-enrich"].EnrichHandler);
+ },
+ function (t, e, i) {
+ "use strict";
+ var o,
+ r =
+ (this && this.__extends) ||
+ ((o = function (t, e) {
+ return (o =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function i() {
+ this.constructor = t;
+ }
+ o(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((i.prototype = e.prototype), new i()));
+ }),
+ n =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ i = e && t[e],
+ o = 0;
+ if (i) return i.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && o >= t.length && (t = void 0),
+ { value: t && t[o++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.ComplexityVisitor = void 0);
+ var s = i(8),
+ l = i(4),
+ a = i(5),
+ c = (function (t) {
+ function e(e, i) {
+ var o = t.call(this, e) || this;
+ o.complexity = {
+ text: 0.5,
+ token: 0.5,
+ child: 1,
+ script: 0.8,
+ sqrt: 2,
+ subsup: 2,
+ underover: 2,
+ fraction: 2,
+ enclose: 2,
+ action: 2,
+ phantom: 0,
+ xml: 2,
+ glyph: 2,
+ };
+ var r = o.constructor;
+ return (
+ (o.options = a.userOptions(a.defaultOptions({}, r.OPTIONS), i)),
+ (o.collapse = new o.options.Collapse(o)),
+ (o.factory = e),
+ o
+ );
+ }
+ return (
+ r(e, t),
+ (e.prototype.visitTree = function (e) {
+ t.prototype.visitTree.call(this, e, !0),
+ this.options.makeCollapsible && this.collapse.makeCollapse(e);
+ }),
+ (e.prototype.visitNode = function (e, i) {
+ if (!e.attributes.get("data-semantic-complexity"))
+ return t.prototype.visitNode.call(this, e, i);
+ }),
+ (e.prototype.visitDefault = function (t, e) {
+ var i;
+ if (t.isToken) {
+ var o = t.getText();
+ i = this.complexity.text * o.length + this.complexity.token;
+ } else i = this.childrenComplexity(t);
+ return this.setComplexity(t, i, e);
+ }),
+ (e.prototype.visitMfracNode = function (t, e) {
+ var i =
+ this.childrenComplexity(t) * this.complexity.script +
+ this.complexity.fraction;
+ return this.setComplexity(t, i, e);
+ }),
+ (e.prototype.visitMsqrtNode = function (t, e) {
+ var i = this.childrenComplexity(t) + this.complexity.sqrt;
+ return this.setComplexity(t, i, e);
+ }),
+ (e.prototype.visitMrootNode = function (t, e) {
+ var i =
+ this.childrenComplexity(t) +
+ this.complexity.sqrt -
+ (1 - this.complexity.script) *
+ this.getComplexity(t.childNodes[1]);
+ return this.setComplexity(t, i, e);
+ }),
+ (e.prototype.visitMphantomNode = function (t, e) {
+ return this.setComplexity(t, this.complexity.phantom, e);
+ }),
+ (e.prototype.visitMsNode = function (t, e) {
+ var i =
+ (
+ t.attributes.get("lquote") +
+ t.getText() +
+ t.attributes.get("rquote")
+ ).length * this.complexity.text;
+ return this.setComplexity(t, i, e);
+ }),
+ (e.prototype.visitMsubsupNode = function (e, i) {
+ t.prototype.visitDefault.call(this, e, !0);
+ var o = e.childNodes[e.sub],
+ r = e.childNodes[e.sup],
+ n = e.childNodes[e.base],
+ s =
+ Math.max(
+ o ? this.getComplexity(o) : 0,
+ r ? this.getComplexity(r) : 0,
+ ) * this.complexity.script;
+ return (
+ (s += this.complexity.child * ((o ? 1 : 0) + (r ? 1 : 0))),
+ (s += n ? this.getComplexity(n) + this.complexity.child : 0),
+ (s += this.complexity.subsup),
+ this.setComplexity(e, s, i)
+ );
+ }),
+ (e.prototype.visitMsubNode = function (t, e) {
+ return this.visitMsubsupNode(t, e);
+ }),
+ (e.prototype.visitMsupNode = function (t, e) {
+ return this.visitMsubsupNode(t, e);
+ }),
+ (e.prototype.visitMunderoverNode = function (e, i) {
+ t.prototype.visitDefault.call(this, e, !0);
+ var o = e.childNodes[e.under],
+ r = e.childNodes[e.over],
+ n = e.childNodes[e.base],
+ s =
+ Math.max(
+ o ? this.getComplexity(o) : 0,
+ r ? this.getComplexity(r) : 0,
+ ) * this.complexity.script;
+ return (
+ n && (s = Math.max(this.getComplexity(n), s)),
+ (s +=
+ this.complexity.child *
+ ((o ? 1 : 0) + (r ? 1 : 0) + (n ? 1 : 0))),
+ (s += this.complexity.underover),
+ this.setComplexity(e, s, i)
+ );
+ }),
+ (e.prototype.visitMunderNode = function (t, e) {
+ return this.visitMunderoverNode(t, e);
+ }),
+ (e.prototype.visitMoverNode = function (t, e) {
+ return this.visitMunderoverNode(t, e);
+ }),
+ (e.prototype.visitMencloseNode = function (t, e) {
+ var i = this.childrenComplexity(t) + this.complexity.enclose;
+ return this.setComplexity(t, i, e);
+ }),
+ (e.prototype.visitMactionNode = function (t, e) {
+ this.childrenComplexity(t);
+ var i = this.getComplexity(t.selected);
+ return this.setComplexity(t, i, e);
+ }),
+ (e.prototype.visitMsemanticsNode = function (t, e) {
+ var i = t.childNodes[0],
+ o = 0;
+ return (
+ i && (this.visitNode(i, !0), (o = this.getComplexity(i))),
+ this.setComplexity(t, o, e)
+ );
+ }),
+ (e.prototype.visitAnnotationNode = function (t, e) {
+ return this.setComplexity(t, this.complexity.xml, e);
+ }),
+ (e.prototype.visitAnnotation_xmlNode = function (t, e) {
+ return this.setComplexity(t, this.complexity.xml, e);
+ }),
+ (e.prototype.visitMglyphNode = function (t, e) {
+ return this.setComplexity(t, this.complexity.glyph, e);
+ }),
+ (e.prototype.getComplexity = function (t) {
+ var e = t.getProperty("collapsedComplexity");
+ return null != e ? e : t.attributes.get("data-semantic-complexity");
+ }),
+ (e.prototype.setComplexity = function (t, e, i) {
+ return (
+ i &&
+ (this.options.identifyCollapsible &&
+ (e = this.collapse.check(t, e)),
+ t.attributes.set("data-semantic-complexity", e)),
+ e
+ );
+ }),
+ (e.prototype.childrenComplexity = function (e) {
+ var i, o;
+ t.prototype.visitDefault.call(this, e, !0);
+ var r = 0;
+ try {
+ for (
+ var s = n(e.childNodes), l = s.next();
+ !l.done;
+ l = s.next()
+ ) {
+ var a = l.value;
+ r += this.getComplexity(a);
+ }
+ } catch (t) {
+ i = { error: t };
+ } finally {
+ try {
+ l && !l.done && (o = s.return) && o.call(s);
+ } finally {
+ if (i) throw i.error;
+ }
+ }
+ return (
+ e.childNodes.length > 1 &&
+ (r += e.childNodes.length * this.complexity.child),
+ r
+ );
+ }),
+ (e.OPTIONS = {
+ identifyCollapsible: !0,
+ makeCollapsible: !0,
+ Collapse: l.Collapse,
+ }),
+ e
+ );
+ })(s.MmlVisitor);
+ e.ComplexityVisitor = c;
+ },
+ function (t, e, i) {
+ "use strict";
+ var o =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ i = e && t[e],
+ o = 0;
+ if (i) return i.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && o >= t.length && (t = void 0),
+ { value: t && t[o++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.Collapse = void 0);
+ var r = (function () {
+ function t(e) {
+ var i = this;
+ (this.cutoff = {
+ identifier: 3,
+ number: 3,
+ text: 10,
+ infixop: 15,
+ relseq: 15,
+ multirel: 15,
+ fenced: 18,
+ bigop: 20,
+ integral: 20,
+ fraction: 12,
+ sqrt: 9,
+ root: 12,
+ vector: 15,
+ matrix: 15,
+ cases: 15,
+ superscript: 9,
+ subscript: 9,
+ subsup: 9,
+ punctuated: {
+ endpunct: t.NOCOLLAPSE,
+ startpunct: t.NOCOLLAPSE,
+ value: 12,
+ },
+ }),
+ (this.marker = {
+ identifier: "x",
+ number: "#",
+ text: "...",
+ appl: { "limit function": "lim", value: "f()" },
+ fraction: "/",
+ sqrt: "\u221a",
+ root: "\u221a",
+ superscript: "\u25fd\u02d9",
+ subscript: "\u25fd.",
+ subsup: "\u25fd:",
+ vector: {
+ binomial: "(:)",
+ determinant: "|:|",
+ value: "\u27e8:\u27e9",
+ },
+ matrix: {
+ squarematrix: "[::]",
+ rowvector: "\u27e8\u22ef\u27e9",
+ columnvector: "\u27e8\u22ee\u27e9",
+ determinant: "|::|",
+ value: "(::)",
+ },
+ cases: "{:",
+ infixop: {
+ addition: "+",
+ subtraction: "\u2212",
+ multiplication: "\u22c5",
+ implicit: "\u22c5",
+ value: "+",
+ },
+ punctuated: { text: "...", value: "," },
+ }),
+ (this.collapse = new Map([
+ [
+ "fenced",
+ function (t, e) {
+ return (
+ (e = i.uncollapseChild(e, t, 1)) > i.cutoff.fenced &&
+ "leftright" === t.attributes.get("data-semantic-role") &&
+ (e = i.recordCollapse(
+ t,
+ e,
+ i.getText(t.childNodes[0]) +
+ i.getText(t.childNodes[t.childNodes.length - 1]),
+ )),
+ e
+ );
+ },
+ ],
+ [
+ "appl",
+ function (t, e) {
+ if (i.canUncollapse(t, 2, 2)) {
+ e = i.complexity.visitNode(t, !1);
+ var o = i.marker.appl,
+ r = o[t.attributes.get("data-semantic-role")] || o.value;
+ e = i.recordCollapse(t, e, r);
+ }
+ return e;
+ },
+ ],
+ [
+ "sqrt",
+ function (t, e) {
+ return (
+ (e = i.uncollapseChild(e, t, 0)) > i.cutoff.sqrt &&
+ (e = i.recordCollapse(t, e, i.marker.sqrt)),
+ e
+ );
+ },
+ ],
+ [
+ "root",
+ function (t, e) {
+ return (
+ (e = i.uncollapseChild(e, t, 0, 2)) > i.cutoff.sqrt &&
+ (e = i.recordCollapse(t, e, i.marker.sqrt)),
+ e
+ );
+ },
+ ],
+ [
+ "enclose",
+ function (t, e) {
+ if (1 === i.splitAttribute(t, "children").length) {
+ var o = i.canUncollapse(t, 1);
+ if (o) {
+ var r = o.getProperty("collapse-marker");
+ i.unrecordCollapse(o),
+ (e = i.recordCollapse(
+ t,
+ i.complexity.visitNode(t, !1),
+ r,
+ ));
+ }
+ }
+ return e;
+ },
+ ],
+ [
+ "bigop",
+ function (t, e) {
+ if (e > i.cutoff.bigop || !t.isKind("mo")) {
+ var o = i.splitAttribute(t, "content").pop(),
+ r = i.findChildText(t, o);
+ e = i.recordCollapse(t, e, r);
+ }
+ return e;
+ },
+ ],
+ [
+ "integral",
+ function (t, e) {
+ if (e > i.cutoff.integral || !t.isKind("mo")) {
+ var o = i.splitAttribute(t, "content").pop(),
+ r = i.findChildText(t, o);
+ e = i.recordCollapse(t, e, r);
+ }
+ return e;
+ },
+ ],
+ [
+ "relseq",
+ function (t, e) {
+ if (e > i.cutoff.relseq) {
+ var o = i.splitAttribute(t, "content")[0],
+ r = i.findChildText(t, o);
+ e = i.recordCollapse(t, e, r);
+ }
+ return e;
+ },
+ ],
+ [
+ "multirel",
+ function (t, e) {
+ if (e > i.cutoff.relseq) {
+ var o = i.splitAttribute(t, "content")[0],
+ r = i.findChildText(t, o) + "\u22ef";
+ e = i.recordCollapse(t, e, r);
+ }
+ return e;
+ },
+ ],
+ [
+ "superscript",
+ function (t, e) {
+ return (
+ (e = i.uncollapseChild(e, t, 0, 2)) > i.cutoff.superscript &&
+ (e = i.recordCollapse(t, e, i.marker.superscript)),
+ e
+ );
+ },
+ ],
+ [
+ "subscript",
+ function (t, e) {
+ return (
+ (e = i.uncollapseChild(e, t, 0, 2)) > i.cutoff.subscript &&
+ (e = i.recordCollapse(t, e, i.marker.subscript)),
+ e
+ );
+ },
+ ],
+ [
+ "subsup",
+ function (t, e) {
+ return (
+ (e = i.uncollapseChild(e, t, 0, 3)) > i.cutoff.subsup &&
+ (e = i.recordCollapse(t, e, i.marker.subsup)),
+ e
+ );
+ },
+ ],
+ ])),
+ (this.idCount = 0),
+ (this.complexity = e);
+ }
+ return (
+ (t.prototype.check = function (t, e) {
+ var i = t.attributes.get("data-semantic-type");
+ return this.collapse.has(i)
+ ? this.collapse.get(i).call(this, t, e)
+ : this.cutoff.hasOwnProperty(i)
+ ? this.defaultCheck(t, e, i)
+ : e;
+ }),
+ (t.prototype.defaultCheck = function (t, e, i) {
+ var o = t.attributes.get("data-semantic-role"),
+ r = this.cutoff[i];
+ if (e > ("number" == typeof r ? r : r[o] || r.value)) {
+ var n = this.marker[i] || "??",
+ s = "string" == typeof n ? n : n[o] || n.value;
+ e = this.recordCollapse(t, e, s);
+ }
+ return e;
+ }),
+ (t.prototype.recordCollapse = function (t, e, i) {
+ return (
+ (i = "\u25c2" + i + "\u25b8"),
+ t.setProperty("collapse-marker", i),
+ t.setProperty("collapse-complexity", e),
+ i.length * this.complexity.complexity.text
+ );
+ }),
+ (t.prototype.unrecordCollapse = function (t) {
+ var e = t.getProperty("collapse-complexity");
+ null != e &&
+ (t.attributes.set("data-semantic-complexity", e),
+ t.removeProperty("collapse-complexity"),
+ t.removeProperty("collapse-marker"));
+ }),
+ (t.prototype.canUncollapse = function (t, e, i) {
+ if (
+ (void 0 === i && (i = 1),
+ this.splitAttribute(t, "children").length === i)
+ ) {
+ var o =
+ 1 === t.childNodes.length && t.childNodes[0].isInferred
+ ? t.childNodes[0]
+ : t;
+ if (o && o.childNodes[e]) {
+ var r = o.childNodes[e];
+ if (r.getProperty("collapse-marker")) return r;
+ }
+ }
+ return null;
+ }),
+ (t.prototype.uncollapseChild = function (t, e, i, o) {
+ void 0 === o && (o = 1);
+ var r = this.canUncollapse(e, i, o);
+ return (
+ r &&
+ (this.unrecordCollapse(r),
+ r.parent !== e &&
+ r.parent.attributes.set("data-semantic-complexity", void 0),
+ (t = this.complexity.visitNode(e, !1))),
+ t
+ );
+ }),
+ (t.prototype.splitAttribute = function (t, e) {
+ return (t.attributes.get("data-semantic-" + e) || "").split(/,/);
+ }),
+ (t.prototype.getText = function (t) {
+ var e = this;
+ return t.isToken
+ ? t.getText()
+ : t.childNodes
+ .map(function (t) {
+ return e.getText(t);
+ })
+ .join("");
+ }),
+ (t.prototype.findChildText = function (t, e) {
+ var i = this.findChild(t, e);
+ return this.getText(i.coreMO() || i);
+ }),
+ (t.prototype.findChild = function (t, e) {
+ var i, r;
+ if (!t || t.attributes.get("data-semantic-id") === e) return t;
+ if (!t.isToken)
+ try {
+ for (
+ var n = o(t.childNodes), s = n.next();
+ !s.done;
+ s = n.next()
+ ) {
+ var l = s.value,
+ a = this.findChild(l, e);
+ if (a) return a;
+ }
+ } catch (t) {
+ i = { error: t };
+ } finally {
+ try {
+ s && !s.done && (r = n.return) && r.call(n);
+ } finally {
+ if (i) throw i.error;
+ }
+ }
+ return null;
+ }),
+ (t.prototype.makeCollapse = function (t) {
+ var e = [];
+ t.walkTree(function (t) {
+ t.getProperty("collapse-marker") && e.push(t);
+ }),
+ this.makeActions(e);
+ }),
+ (t.prototype.makeActions = function (t) {
+ var e, i;
+ try {
+ for (var r = o(t), n = r.next(); !n.done; n = r.next()) {
+ var s = n.value;
+ this.makeAction(s);
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ n && !n.done && (i = r.return) && i.call(r);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ }),
+ (t.prototype.makeId = function () {
+ return "mjx-collapse-" + this.idCount++;
+ }),
+ (t.prototype.makeAction = function (t) {
+ t.isKind("math") && (t = this.addMrow(t));
+ var e = this.complexity.factory,
+ i = t.getProperty("collapse-marker"),
+ o = t.parent,
+ r = e.create(
+ "maction",
+ {
+ actiontype: "toggle",
+ selection: 2,
+ "data-collapsible": !0,
+ id: this.makeId(),
+ "data-semantic-complexity": t.attributes.get(
+ "data-semantic-complexity",
+ ),
+ },
+ [
+ e.create("mtext", { mathcolor: "blue" }, [
+ e.create("text").setText(i),
+ ]),
+ ],
+ );
+ r.inheritAttributesFrom(t),
+ t.attributes.set(
+ "data-semantic-complexity",
+ t.getProperty("collapse-complexity"),
+ ),
+ t.removeProperty("collapse-marker"),
+ t.removeProperty("collapse-complexity"),
+ o.replaceChild(r, t),
+ r.appendChild(t);
+ }),
+ (t.prototype.addMrow = function (t) {
+ var e,
+ i,
+ r = this.complexity.factory.create(
+ "mrow",
+ null,
+ t.childNodes[0].childNodes,
+ );
+ t.childNodes[0].setChildren([r]);
+ var n = t.attributes.getAllAttributes();
+ try {
+ for (
+ var s = o(Object.keys(n)), l = s.next();
+ !l.done;
+ l = s.next()
+ ) {
+ var a = l.value;
+ "data-semantic-" === a.substr(0, 14) &&
+ (r.attributes.set(a, n[a]), delete n[a]);
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ l && !l.done && (i = s.return) && i.call(s);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ return (
+ r.setProperty("collapse-marker", t.getProperty("collapse-marker")),
+ r.setProperty(
+ "collapse-complexity",
+ t.getProperty("collapse-complexity"),
+ ),
+ t.removeProperty("collapse-marker"),
+ t.removeProperty("collapse-complexity"),
+ r
+ );
+ }),
+ (t.NOCOLLAPSE = 1e7),
+ t
+ );
+ })();
+ e.Collapse = r;
+ },
+ function (t, e, i) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.APPEND = MathJax._.util.Options.APPEND),
+ (e.REMOVE = MathJax._.util.Options.REMOVE),
+ (e.Expandable = MathJax._.util.Options.Expandable),
+ (e.expandable = MathJax._.util.Options.expandable),
+ (e.makeArray = MathJax._.util.Options.makeArray),
+ (e.keys = MathJax._.util.Options.keys),
+ (e.copy = MathJax._.util.Options.copy),
+ (e.insert = MathJax._.util.Options.insert),
+ (e.defaultOptions = MathJax._.util.Options.defaultOptions),
+ (e.userOptions = MathJax._.util.Options.userOptions),
+ (e.selectOptions = MathJax._.util.Options.selectOptions),
+ (e.selectOptionsFromKeys = MathJax._.util.Options.selectOptionsFromKeys),
+ (e.separateOptions = MathJax._.util.Options.separateOptions);
+ },
+ function (t, e, i) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.sreReady = MathJax._.a11y.sre.sreReady);
+ },
+ function (t, e, i) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.protoItem = MathJax._.core.MathItem.protoItem),
+ (e.AbstractMathItem = MathJax._.core.MathItem.AbstractMathItem),
+ (e.STATE = MathJax._.core.MathItem.STATE),
+ (e.newState = MathJax._.core.MathItem.newState);
+ },
+ function (t, e, i) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlVisitor = MathJax._.core.MmlTree.MmlVisitor.MmlVisitor);
+ },
+ function (t, e, i) {
+ "use strict";
+ i.r(e);
+ var o = i(0),
+ r = i(1),
+ n = i(4),
+ s = i(3),
+ l = i(2),
+ a = i(6);
+ Object(o.combineWithMathJax)({
+ _: {
+ a11y: {
+ complexity_ts: r,
+ complexity: { collapse: n, visitor: s },
+ "semantic-enrich": l,
+ sre: a,
+ },
+ },
+ }),
+ MathJax.startup &&
+ (MathJax.startup.extendHandler(function (t) {
+ return Object(r.ComplexityHandler)(t);
+ }),
+ Object(o.combineDefaults)(
+ MathJax.config,
+ "options",
+ MathJax.config["a11y/complexity"] || {},
+ ));
+ },
+]);
diff --git a/assets/bower_components/MathJax/es5/a11y/explorer.js b/assets/bower_components/MathJax/es5/a11y/explorer.js
new file mode 100644
index 0000000..5a20473
--- /dev/null
+++ b/assets/bower_components/MathJax/es5/a11y/explorer.js
@@ -0,0 +1,1879 @@
+!(function (t) {
+ var e = {};
+ function o(r) {
+ if (e[r]) return e[r].exports;
+ var n = (e[r] = { i: r, l: !1, exports: {} });
+ return t[r].call(n.exports, n, n.exports, o), (n.l = !0), n.exports;
+ }
+ (o.m = t),
+ (o.c = e),
+ (o.d = function (t, e, r) {
+ o.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: r });
+ }),
+ (o.r = function (t) {
+ "undefined" != typeof Symbol &&
+ Symbol.toStringTag &&
+ Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }),
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ }),
+ (o.t = function (t, e) {
+ if ((1 & e && (t = o(t)), 8 & e)) return t;
+ if (4 & e && "object" == typeof t && t && t.__esModule) return t;
+ var r = Object.create(null);
+ if (
+ (o.r(r),
+ Object.defineProperty(r, "default", { enumerable: !0, value: t }),
+ 2 & e && "string" != typeof t)
+ )
+ for (var n in t)
+ o.d(
+ r,
+ n,
+ function (e) {
+ return t[e];
+ }.bind(null, n),
+ );
+ return r;
+ }),
+ (o.n = function (t) {
+ var e =
+ t && t.__esModule
+ ? function () {
+ return t.default;
+ }
+ : function () {
+ return t;
+ };
+ return o.d(e, "a", e), e;
+ }),
+ (o.o = function (t, e) {
+ return Object.prototype.hasOwnProperty.call(t, e);
+ }),
+ (o.p = ""),
+ o((o.s = 14));
+})([
+ function (t, e, o) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.sreReady = MathJax._.a11y.sre.sreReady);
+ },
+ function (t, e, o) {
+ "use strict";
+ var r =
+ (this && this.__read) ||
+ function (t, e) {
+ var o = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!o) return t;
+ var r,
+ n,
+ i = o.call(t),
+ a = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(r = i.next()).done; )
+ a.push(r.value);
+ } catch (t) {
+ n = { error: t };
+ } finally {
+ try {
+ r && !r.done && (o = i.return) && o.call(i);
+ } finally {
+ if (n) throw n.error;
+ }
+ }
+ return a;
+ },
+ n =
+ (this && this.__spread) ||
+ function () {
+ for (var t = [], e = 0; e < arguments.length; e++)
+ t = t.concat(r(arguments[e]));
+ return t;
+ },
+ i =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ o = e && t[e],
+ r = 0;
+ if (o) return o.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && r >= t.length && (t = void 0),
+ { value: t && t[r++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.AbstractExplorer = void 0),
+ o(0);
+ var a = (function () {
+ function t(t, e, o) {
+ for (var r = [], n = 3; n < arguments.length; n++)
+ r[n - 3] = arguments[n];
+ (this.document = t),
+ (this.region = e),
+ (this.node = o),
+ (this.stoppable = !0),
+ (this.events = []),
+ (this.highlighter = this.getHighlighter()),
+ (this._active = !1);
+ }
+ return (
+ (t.stopEvent = function (t) {
+ t.preventDefault ? t.preventDefault() : (t.returnValue = !1),
+ t.stopImmediatePropagation
+ ? t.stopImmediatePropagation()
+ : t.stopPropagation && t.stopPropagation(),
+ (t.cancelBubble = !0);
+ }),
+ (t.create = function (t, e, o) {
+ for (var r = [], i = 3; i < arguments.length; i++)
+ r[i - 3] = arguments[i];
+ var a = new (this.bind.apply(this, n([void 0, t, e, o], r)))();
+ return a;
+ }),
+ (t.prototype.Events = function () {
+ return this.events;
+ }),
+ Object.defineProperty(t.prototype, "active", {
+ get: function () {
+ return this._active;
+ },
+ set: function (t) {
+ this._active = t;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (t.prototype.Attach = function () {
+ this.AddEvents();
+ }),
+ (t.prototype.Detach = function () {
+ this.RemoveEvents();
+ }),
+ (t.prototype.Start = function () {
+ (this.highlighter = this.getHighlighter()), (this.active = !0);
+ }),
+ (t.prototype.Stop = function () {
+ this.active &&
+ (this.region.Clear(), this.region.Hide(), (this.active = !1));
+ }),
+ (t.prototype.AddEvents = function () {
+ var t, e;
+ try {
+ for (var o = i(this.events), n = o.next(); !n.done; n = o.next()) {
+ var a = r(n.value, 2),
+ s = a[0],
+ l = a[1];
+ this.node.addEventListener(s, l);
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ n && !n.done && (e = o.return) && e.call(o);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ }),
+ (t.prototype.RemoveEvents = function () {
+ var t, e;
+ try {
+ for (var o = i(this.events), n = o.next(); !n.done; n = o.next()) {
+ var a = r(n.value, 2),
+ s = a[0],
+ l = a[1];
+ this.node.removeEventListener(s, l);
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ n && !n.done && (e = o.return) && e.call(o);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ }),
+ (t.prototype.Update = function (t) {
+ void 0 === t && (t = !1);
+ }),
+ (t.prototype.getHighlighter = function () {
+ var t = this.document.options.a11y,
+ e = {
+ color: t.foregroundColor.toLowerCase(),
+ alpha: t.foregroundOpacity / 100,
+ },
+ o = {
+ color: t.backgroundColor.toLowerCase(),
+ alpha: t.backgroundOpacity / 100,
+ };
+ return sre.HighlighterFactory.highlighter(o, e, {
+ renderer: this.document.outputJax.name,
+ browser: "v3",
+ });
+ }),
+ (t.prototype.stopEvent = function (e) {
+ this.stoppable && t.stopEvent(e);
+ }),
+ t
+ );
+ })();
+ e.AbstractExplorer = a;
+ },
+ function (t, e, o) {
+ "use strict";
+ var r,
+ n,
+ i,
+ a,
+ s =
+ (this && this.__extends) ||
+ ((r = function (t, e) {
+ return (r =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var o in e) e.hasOwnProperty(o) && (t[o] = e[o]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function o() {
+ this.constructor = t;
+ }
+ r(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((o.prototype = e.prototype), new o()));
+ });
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.HoverRegion =
+ e.LiveRegion =
+ e.ToolTip =
+ e.StringRegion =
+ e.DummyRegion =
+ e.AbstractRegion =
+ void 0);
+ var l = o(13);
+ o(0);
+ var c = (function () {
+ function t(t) {
+ (this.document = t),
+ (this.CLASS = this.constructor),
+ this.AddStyles(),
+ this.AddElement();
+ }
+ return (
+ (t.prototype.AddStyles = function () {
+ if (!this.CLASS.styleAdded) {
+ var t = this.document.adaptor.node("style");
+ (t.innerHTML = this.CLASS.style.cssText),
+ this.document.adaptor
+ .head(this.document.adaptor.document)
+ .appendChild(t),
+ (this.CLASS.styleAdded = !0);
+ }
+ }),
+ (t.prototype.AddElement = function () {
+ var t = this.document.adaptor.node("div");
+ t.classList.add(this.CLASS.className),
+ (t.style.backgroundColor = "white"),
+ (this.div = t),
+ (this.inner = this.document.adaptor.node("div")),
+ this.div.appendChild(this.inner),
+ this.document.adaptor
+ .body(this.document.adaptor.document)
+ .appendChild(this.div);
+ }),
+ (t.prototype.Show = function (t, e) {
+ this.position(t),
+ this.highlight(e),
+ this.div.classList.add(this.CLASS.className + "_Show");
+ }),
+ (t.prototype.Hide = function () {
+ this.div.classList.remove(this.CLASS.className + "_Show");
+ }),
+ (t.prototype.stackRegions = function (t) {
+ for (
+ var e = t.getBoundingClientRect(),
+ o = 0,
+ r = Number.POSITIVE_INFINITY,
+ n = this.document.adaptor.document.getElementsByClassName(
+ this.CLASS.className + "_Show",
+ ),
+ i = 0,
+ a = void 0;
+ (a = n[i]);
+ i++
+ )
+ a !== this.div &&
+ ((o = Math.max(a.getBoundingClientRect().bottom, o)),
+ (r = Math.min(a.getBoundingClientRect().left, r)));
+ var s = (o || e.bottom + 10) + window.pageYOffset,
+ l =
+ (r < Number.POSITIVE_INFINITY ? r : e.left) + window.pageXOffset;
+ (this.div.style.top = s + "px"), (this.div.style.left = l + "px");
+ }),
+ (t.styleAdded = !1),
+ t
+ );
+ })();
+ e.AbstractRegion = c;
+ var h = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ s(e, t),
+ (e.prototype.Clear = function () {}),
+ (e.prototype.Update = function () {}),
+ (e.prototype.Hide = function () {}),
+ (e.prototype.Show = function () {}),
+ (e.prototype.AddElement = function () {}),
+ (e.prototype.AddStyles = function () {}),
+ (e.prototype.position = function () {}),
+ (e.prototype.highlight = function (t) {}),
+ e
+ );
+ })(c);
+ e.DummyRegion = h;
+ var u = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ s(e, t),
+ (e.prototype.Clear = function () {
+ this.Update(""),
+ (this.inner.style.top = ""),
+ (this.inner.style.backgroundColor = "");
+ }),
+ (e.prototype.Update = function (t) {
+ (this.inner.textContent = ""), (this.inner.textContent = t);
+ }),
+ (e.prototype.position = function (t) {
+ this.stackRegions(t);
+ }),
+ (e.prototype.highlight = function (t) {
+ var e = t.colorString();
+ (this.inner.style.backgroundColor = e.background),
+ (this.inner.style.color = e.foreground);
+ }),
+ e
+ );
+ })(c);
+ e.StringRegion = u;
+ var p = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ s(e, t),
+ (e.className = "MJX_ToolTip"),
+ (e.style = new l.CssStyles(
+ (((n = {})["." + e.className] = {
+ position: "absolute",
+ display: "inline-block",
+ height: "1px",
+ width: "1px",
+ }),
+ (n["." + e.className + "_Show"] = {
+ width: "auto",
+ height: "auto",
+ opacity: 1,
+ "text-align": "center",
+ "border-radius": "6px",
+ padding: "0px 0px",
+ "border-bottom": "1px dotted black",
+ position: "absolute",
+ "z-index": 202,
+ }),
+ n),
+ )),
+ e
+ );
+ })(u);
+ e.ToolTip = p;
+ var d = (function (t) {
+ function e(e) {
+ var o = t.call(this, e) || this;
+ return (
+ (o.document = e), o.div.setAttribute("aria-live", "assertive"), o
+ );
+ }
+ return (
+ s(e, t),
+ (e.className = "MJX_LiveRegion"),
+ (e.style = new l.CssStyles(
+ (((i = {})["." + e.className] = {
+ position: "absolute",
+ top: "0",
+ height: "1px",
+ width: "1px",
+ padding: "1px",
+ overflow: "hidden",
+ }),
+ (i["." + e.className + "_Show"] = {
+ top: "0",
+ position: "absolute",
+ width: "auto",
+ height: "auto",
+ padding: "0px 0px",
+ opacity: 1,
+ "z-index": "202",
+ left: 0,
+ right: 0,
+ margin: "0 auto",
+ "background-color": "rgba(0, 0, 255, 0.2)",
+ "box-shadow": "0px 10px 20px #888",
+ border: "2px solid #CCCCCC",
+ }),
+ i),
+ )),
+ e
+ );
+ })(u);
+ e.LiveRegion = d;
+ var f = (function (t) {
+ function e(e) {
+ var o = t.call(this, e) || this;
+ return (o.document = e), (o.inner.style.lineHeight = "0"), o;
+ }
+ return (
+ s(e, t),
+ (e.prototype.position = function (t) {
+ var e,
+ o = t.getBoundingClientRect(),
+ r = this.div.getBoundingClientRect(),
+ n = o.left + o.width / 2 - r.width / 2;
+ switch (
+ ((n = n < 0 ? 0 : n),
+ (n += window.pageXOffset),
+ this.document.options.a11y.align)
+ ) {
+ case "top":
+ e = o.top - r.height - 10;
+ break;
+ case "bottom":
+ e = o.bottom + 10;
+ break;
+ case "center":
+ default:
+ e = o.top + o.height / 2 - r.height / 2;
+ }
+ (e = (e += window.pageYOffset) < 0 ? 0 : e),
+ (this.div.style.top = e + "px"),
+ (this.div.style.left = n + "px");
+ }),
+ (e.prototype.highlight = function (t) {
+ if (
+ !this.inner.firstChild ||
+ this.inner.firstChild.hasAttribute("sre-highlight")
+ ) {
+ var e = t.colorString();
+ (this.inner.style.backgroundColor = e.background),
+ (this.inner.style.color = e.foreground);
+ }
+ }),
+ (e.prototype.Show = function (e, o) {
+ (this.div.style.fontSize = this.document.options.a11y.magnify),
+ this.Update(e),
+ t.prototype.Show.call(this, e, o);
+ }),
+ (e.prototype.Clear = function () {
+ (this.inner.textContent = ""),
+ (this.inner.style.top = ""),
+ (this.inner.style.backgroundColor = "");
+ }),
+ (e.prototype.Update = function (t) {
+ this.Clear();
+ var e = this.cloneNode(t);
+ this.inner.appendChild(e);
+ }),
+ (e.prototype.cloneNode = function (t) {
+ var e = t.cloneNode(!0);
+ if ("MJX-CONTAINER" !== e.nodeName) {
+ "g" !== e.nodeName &&
+ (e.style.marginLeft = e.style.marginRight = "0");
+ for (var o = t; o && "MJX-CONTAINER" !== o.nodeName; )
+ o = o.parentNode;
+ if ("MJX-MATH" !== e.nodeName && "svg" !== e.nodeName)
+ if (
+ "svg" ===
+ (e = o.firstChild.cloneNode(!1).appendChild(e).parentNode)
+ .nodeName
+ ) {
+ e.firstChild.setAttribute("transform", "matrix(1 0 0 -1 0 0)");
+ var r = parseFloat(e.getAttribute("viewBox").split(/ /)[2]),
+ n = parseFloat(e.getAttribute("width")),
+ i = t.getBBox(),
+ a = i.x,
+ s = i.y,
+ l = i.width,
+ c = i.height;
+ e.setAttribute("viewBox", [a, -(s + c), l, c].join(" ")),
+ e.removeAttribute("style"),
+ e.setAttribute("width", (n / r) * l + "ex"),
+ e.setAttribute("height", (n / r) * c + "ex"),
+ o.setAttribute("sre-highlight", "false");
+ }
+ (e = o.cloneNode(!1).appendChild(e).parentNode).style.margin = "0";
+ }
+ return e;
+ }),
+ (e.className = "MJX_HoverRegion"),
+ (e.style = new l.CssStyles(
+ (((a = {})["." + e.className] = {
+ position: "absolute",
+ height: "1px",
+ width: "1px",
+ padding: "1px",
+ overflow: "hidden",
+ }),
+ (a["." + e.className + "_Show"] = {
+ position: "absolute",
+ width: "max-content",
+ height: "auto",
+ padding: "0px 0px",
+ opacity: 1,
+ "z-index": "202",
+ margin: "0 auto",
+ "background-color": "rgba(0, 0, 255, 0.2)",
+ "box-shadow": "0px 10px 20px #888",
+ border: "2px solid #CCCCCC",
+ }),
+ a),
+ )),
+ e
+ );
+ })(c);
+ e.HoverRegion = f;
+ },
+ function (t, e, o) {
+ "use strict";
+ var r,
+ n =
+ (this && this.__extends) ||
+ ((r = function (t, e) {
+ return (r =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var o in e) e.hasOwnProperty(o) && (t[o] = e[o]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function o() {
+ this.constructor = t;
+ }
+ r(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((o.prototype = e.prototype), new o()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, o = 1, r = arguments.length; o < r; o++)
+ for (var n in (e = arguments[o]))
+ Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
+ return t;
+ }).apply(this, arguments);
+ },
+ a =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ o = e && t[e],
+ r = 0;
+ if (o) return o.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && r >= t.length && (t = void 0),
+ { value: t && t[r++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ },
+ s =
+ (this && this.__read) ||
+ function (t, e) {
+ var o = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!o) return t;
+ var r,
+ n,
+ i = o.call(t),
+ a = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(r = i.next()).done; )
+ a.push(r.value);
+ } catch (t) {
+ n = { error: t };
+ } finally {
+ try {
+ r && !r.done && (o = i.return) && o.call(i);
+ } finally {
+ if (n) throw n.error;
+ }
+ }
+ return a;
+ },
+ l =
+ (this && this.__spread) ||
+ function () {
+ for (var t = [], e = 0; e < arguments.length; e++)
+ t = t.concat(s(arguments[e]));
+ return t;
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.setA11yOption =
+ e.setA11yOptions =
+ e.ExplorerHandler =
+ e.ExplorerMathDocumentMixin =
+ e.ExplorerMathItemMixin =
+ void 0);
+ var c = o(8),
+ h = o(9),
+ u = o(10),
+ p = o(11),
+ d = o(12),
+ f = o(5),
+ y = o(6),
+ v = o(7),
+ g = o(2);
+ function m(t, e) {
+ return (function (t) {
+ function o() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (
+ (e.explorers = {}),
+ (e.attached = []),
+ (e.restart = !1),
+ (e.refocus = !1),
+ (e.savedId = null),
+ e
+ );
+ }
+ return (
+ n(o, t),
+ (o.prototype.explorable = function (t, o) {
+ if (
+ (void 0 === o && (o = !1), !(this.state() >= c.STATE.EXPLORER))
+ ) {
+ if (!this.isEscaped && (t.options.enableExplorer || o)) {
+ var r = this.typesetRoot,
+ n = e(this.root);
+ this.savedId &&
+ (this.typesetRoot.setAttribute(
+ "sre-explorer-id",
+ this.savedId,
+ ),
+ (this.savedId = null)),
+ (this.explorers = (function (t, e, o) {
+ var r,
+ n,
+ i = {};
+ try {
+ for (
+ var s = a(Object.keys(_)), l = s.next();
+ !l.done;
+ l = s.next()
+ ) {
+ var c = l.value;
+ i[c] = _[c](t, e, o);
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ l && !l.done && (n = s.return) && n.call(s);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ return i;
+ })(t, r, n)),
+ this.attachExplorers(t);
+ }
+ this.state(c.STATE.EXPLORER);
+ }
+ }),
+ (o.prototype.attachExplorers = function (t) {
+ var e, o;
+ this.attached = [];
+ try {
+ for (
+ var r = a(Object.keys(this.explorers)), n = r.next();
+ !n.done;
+ n = r.next()
+ ) {
+ var i = n.value,
+ s = this.explorers[i];
+ t.options.a11y[i]
+ ? (s.Attach(), this.attached.push(s))
+ : s.Detach();
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ n && !n.done && (o = r.return) && o.call(r);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ this.addExplorers(this.attached);
+ }),
+ (o.prototype.rerender = function (e, o) {
+ var r, n;
+ void 0 === o && (o = c.STATE.RERENDER),
+ (this.savedId = this.typesetRoot.getAttribute("sre-explorer-id")),
+ (this.refocus =
+ window.document.activeElement === this.typesetRoot);
+ try {
+ for (
+ var i = a(this.attached), s = i.next();
+ !s.done;
+ s = i.next()
+ ) {
+ var l = s.value;
+ l.active && ((this.restart = !0), l.Stop());
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ s && !s.done && (n = i.return) && n.call(i);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ t.prototype.rerender.call(this, e, o);
+ }),
+ (o.prototype.updateDocument = function (e) {
+ t.prototype.updateDocument.call(this, e),
+ this.refocus && this.typesetRoot.focus(),
+ this.restart &&
+ this.attached.forEach(function (t) {
+ return t.Start();
+ }),
+ (this.refocus = this.restart = !1);
+ }),
+ (o.prototype.addExplorers = function (t) {
+ var e, o;
+ if (!(t.length <= 1)) {
+ var r = null;
+ try {
+ for (
+ var n = a(this.attached), i = n.next();
+ !i.done;
+ i = n.next()
+ ) {
+ var s = i.value;
+ s instanceof f.AbstractKeyExplorer &&
+ ((s.stoppable = !1), (r = s));
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ i && !i.done && (o = n.return) && o.call(n);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ r && (r.stoppable = !0);
+ }
+ }),
+ o
+ );
+ })(t);
+ }
+ function b(t) {
+ var e;
+ return (
+ ((e = (function (t) {
+ function e() {
+ for (var e = [], o = 0; o < arguments.length; o++)
+ e[o] = arguments[o];
+ var r = t.apply(this, l(e)) || this,
+ n = r.constructor.ProcessBits;
+ n.has("explorer") || n.allocate("explorer");
+ var i = new p.SerializedMmlVisitor(r.mmlFactory),
+ a = function (t) {
+ return i.visitTree(t);
+ };
+ return (
+ (r.options.MathItem = m(r.options.MathItem, a)),
+ (r.explorerRegions = x(r)),
+ r
+ );
+ }
+ return (
+ n(e, t),
+ (e.prototype.explorable = function () {
+ var t, e;
+ if (!this.processed.isSet("explorer")) {
+ if (this.options.enableExplorer)
+ try {
+ for (
+ var o = a(this.math), r = o.next();
+ !r.done;
+ r = o.next()
+ ) {
+ r.value.explorable(this);
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ r && !r.done && (e = o.return) && e.call(o);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ this.processed.set("explorer");
+ }
+ return this;
+ }),
+ (e.prototype.state = function (e, o) {
+ return (
+ void 0 === o && (o = !1),
+ t.prototype.state.call(this, e, o),
+ e < c.STATE.EXPLORER && this.processed.clear("explorer"),
+ this
+ );
+ }),
+ e
+ );
+ })(t)).OPTIONS = i(i({}, t.OPTIONS), {
+ enrichSpeech: "shallow",
+ enableExplorer: !0,
+ renderActions: u.expandable(
+ i(i({}, t.OPTIONS.renderActions), {
+ explorable: [c.STATE.EXPLORER],
+ }),
+ ),
+ a11y: {
+ align: "top",
+ backgroundColor: "Blue",
+ backgroundOpacity: 20,
+ braille: !1,
+ flame: !1,
+ foregroundColor: "Black",
+ foregroundOpacity: 100,
+ highlight: "None",
+ hover: !1,
+ infoPrefix: !1,
+ infoRole: !1,
+ infoType: !1,
+ keyMagnifier: !1,
+ locale: "en",
+ magnification: "None",
+ magnify: "400%",
+ mouseMagnifier: !1,
+ speech: !0,
+ speechRules: "mathspeak-default",
+ subtitles: !0,
+ treeColoring: !1,
+ viewBraille: !1,
+ },
+ })),
+ e
+ );
+ }
+ function x(t) {
+ return {
+ speechRegion: new g.LiveRegion(t),
+ brailleRegion: new g.LiveRegion(t),
+ magnifier: new g.HoverRegion(t),
+ tooltip1: new g.ToolTip(t),
+ tooltip2: new g.ToolTip(t),
+ tooltip3: new g.ToolTip(t),
+ };
+ }
+ c.newState("EXPLORER", 160),
+ (e.ExplorerMathItemMixin = m),
+ (e.ExplorerMathDocumentMixin = b),
+ (e.ExplorerHandler = function (t, e) {
+ return (
+ void 0 === e && (e = null),
+ !t.documentClass.prototype.enrich && e && (t = h.EnrichHandler(t, e)),
+ (t.documentClass = b(t.documentClass)),
+ t
+ );
+ });
+ var _ = {
+ speech: function (t, e) {
+ for (var o, r = [], n = 2; n < arguments.length; n++)
+ r[n - 2] = arguments[n];
+ var i = (o = f.SpeechExplorer).create.apply(
+ o,
+ l([t, t.explorerRegions.speechRegion, e], r),
+ ),
+ a = s(t.options.a11y.speechRules.split("-"), 2),
+ c = a[0],
+ h = a[1];
+ return (
+ i.speechGenerator.setOptions({
+ locale: t.options.a11y.locale,
+ domain: c,
+ style: h,
+ modality: "speech",
+ cache: !1,
+ }),
+ (i.showRegion = "subtitles"),
+ i
+ );
+ },
+ braille: function (t, e) {
+ for (var o, r = [], n = 2; n < arguments.length; n++)
+ r[n - 2] = arguments[n];
+ var i = (o = f.SpeechExplorer).create.apply(
+ o,
+ l([t, t.explorerRegions.brailleRegion, e], r),
+ );
+ return (
+ i.speechGenerator.setOptions({
+ locale: "nemeth",
+ domain: "default",
+ style: "default",
+ modality: "braille",
+ }),
+ (i.showRegion = "viewBraille"),
+ i
+ );
+ },
+ keyMagnifier: function (t, e) {
+ for (var o, r = [], n = 2; n < arguments.length; n++)
+ r[n - 2] = arguments[n];
+ return (o = f.Magnifier).create.apply(
+ o,
+ l([t, t.explorerRegions.magnifier, e], r),
+ );
+ },
+ mouseMagnifier: function (t, e) {
+ for (var o = [], r = 2; r < arguments.length; r++)
+ o[r - 2] = arguments[r];
+ return y.ContentHoverer.create(
+ t,
+ t.explorerRegions.magnifier,
+ e,
+ function (t) {
+ return t.hasAttribute("data-semantic-type");
+ },
+ function (t) {
+ return t;
+ },
+ );
+ },
+ hover: function (t, e) {
+ for (var o = [], r = 2; r < arguments.length; r++)
+ o[r - 2] = arguments[r];
+ return y.FlameHoverer.create(t, null, e);
+ },
+ infoType: function (t, e) {
+ for (var o = [], r = 2; r < arguments.length; r++)
+ o[r - 2] = arguments[r];
+ return y.ValueHoverer.create(
+ t,
+ t.explorerRegions.tooltip1,
+ e,
+ function (t) {
+ return t.hasAttribute("data-semantic-type");
+ },
+ function (t) {
+ return t.getAttribute("data-semantic-type");
+ },
+ );
+ },
+ infoRole: function (t, e) {
+ for (var o = [], r = 2; r < arguments.length; r++)
+ o[r - 2] = arguments[r];
+ return y.ValueHoverer.create(
+ t,
+ t.explorerRegions.tooltip2,
+ e,
+ function (t) {
+ return t.hasAttribute("data-semantic-role");
+ },
+ function (t) {
+ return t.getAttribute("data-semantic-role");
+ },
+ );
+ },
+ infoPrefix: function (t, e) {
+ for (var o = [], r = 2; r < arguments.length; r++)
+ o[r - 2] = arguments[r];
+ return y.ValueHoverer.create(
+ t,
+ t.explorerRegions.tooltip3,
+ e,
+ function (t) {
+ return t.hasAttribute("data-semantic-prefix");
+ },
+ function (t) {
+ return t.getAttribute("data-semantic-prefix");
+ },
+ );
+ },
+ flame: function (t, e) {
+ for (var o = [], r = 2; r < arguments.length; r++)
+ o[r - 2] = arguments[r];
+ return v.FlameColorer.create(t, null, e);
+ },
+ treeColoring: function (t, e) {
+ for (var o = [], r = 2; r < arguments.length; r++)
+ o[r - 2] = arguments[r];
+ return v.TreeColorer.create.apply(v.TreeColorer, l([t, null, e], o));
+ },
+ };
+ function M(t, e, o) {
+ switch (e) {
+ case "magnification":
+ switch (o) {
+ case "None":
+ (t.options.a11y.magnification = o),
+ (t.options.a11y.keyMagnifier = !1),
+ (t.options.a11y.mouseMagnifier = !1);
+ break;
+ case "Keyboard":
+ (t.options.a11y.magnification = o),
+ (t.options.a11y.keyMagnifier = !0),
+ (t.options.a11y.mouseMagnifier = !1);
+ break;
+ case "Mouse":
+ (t.options.a11y.magnification = o),
+ (t.options.a11y.keyMagnifier = !1),
+ (t.options.a11y.mouseMagnifier = !0);
+ }
+ break;
+ case "highlight":
+ switch (o) {
+ case "None":
+ (t.options.a11y.highlight = o),
+ (t.options.a11y.hover = !1),
+ (t.options.a11y.flame = !1);
+ break;
+ case "Hover":
+ (t.options.a11y.highlight = o),
+ (t.options.a11y.hover = !0),
+ (t.options.a11y.flame = !1);
+ break;
+ case "Flame":
+ (t.options.a11y.highlight = o),
+ (t.options.a11y.hover = !1),
+ (t.options.a11y.flame = !0);
+ }
+ break;
+ default:
+ t.options.a11y[e] = o;
+ }
+ }
+ (e.setA11yOptions = function (t, e) {
+ var o, r;
+ for (var n in e) void 0 !== t.options.a11y[n] && M(t, n, e[n]);
+ try {
+ for (var i = a(t.math), s = i.next(); !s.done; s = i.next()) {
+ s.value.attachExplorers(t);
+ }
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ s && !s.done && (r = i.return) && r.call(i);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ }),
+ (e.setA11yOption = M);
+ var S = {},
+ O = function (t, e) {
+ var o,
+ r,
+ n = sre.ClearspeakPreferences.getLocalePreferences()[e];
+ if (!n) {
+ var i = t.findID("Accessibility", "Speech", "Clearspeak");
+ return i && i.disable(), null;
+ }
+ !(function (t, e) {
+ var o,
+ r,
+ n = t.pool.lookup("speechRules"),
+ i = function (e) {
+ if (S[e]) return "continue";
+ t.factory.get("variable")(
+ t.factory,
+ {
+ name: "csprf_" + e,
+ setter: function (t) {
+ (S[e] = t),
+ n.setValue(
+ "clearspeak-" +
+ sre.ClearspeakPreferences.addPreference(
+ sre.Engine.DOMAIN_TO_STYLES.clearspeak,
+ e,
+ t,
+ ),
+ );
+ },
+ getter: function () {
+ return S[e] || "Auto";
+ },
+ },
+ t.pool,
+ );
+ };
+ try {
+ for (var s = a(e), l = s.next(); !l.done; l = s.next()) i(l.value);
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ l && !l.done && (r = s.return) && r.call(s);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ })(t, Object.keys(n));
+ var s = [],
+ l = function (t) {
+ s.push({
+ title: t,
+ values: n[t].map(function (e) {
+ return e.replace(RegExp("^" + t + "_"), "");
+ }),
+ variable: "csprf_" + t,
+ });
+ };
+ try {
+ for (
+ var c = a(Object.getOwnPropertyNames(n)), h = c.next();
+ !h.done;
+ h = c.next()
+ ) {
+ l(h.value);
+ }
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ h && !h.done && (r = c.return) && r.call(c);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ var u = t.factory.get("selectionBox")(
+ t.factory,
+ {
+ title: "Clearspeak Preferences",
+ signature: "",
+ order: "alphabetic",
+ grid: "square",
+ selections: s,
+ },
+ t,
+ );
+ return {
+ type: "command",
+ id: "ClearspeakPreferences",
+ content: "Select Preferences",
+ action: function () {
+ return u.post(0, 0);
+ },
+ };
+ };
+ d.MJContextMenu.DynamicSubmenus.set("Clearspeak", function (t, e) {
+ var o = t.pool.lookup("locale").getValue(),
+ r = O(t, o),
+ n = sre.ClearspeakPreferences.smartPreferences(t.mathItem, o);
+ return (
+ r && n.splice(2, 0, r),
+ t.factory.get("subMenu")(t.factory, { items: n, id: "Clearspeak" }, e)
+ );
+ });
+ var w = { de: "German", en: "English", es: "Spanish", fr: "French" };
+ d.MJContextMenu.DynamicSubmenus.set("A11yLanguage", function (t, e) {
+ var o,
+ r,
+ n = [];
+ try {
+ for (
+ var i = a(sre.Variables.LOCALES), s = i.next();
+ !s.done;
+ s = i.next()
+ ) {
+ var l = s.value;
+ "nemeth" !== l &&
+ n.push({
+ type: "radio",
+ id: l,
+ content: w[l] || l,
+ variable: "locale",
+ });
+ }
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ s && !s.done && (r = i.return) && r.call(i);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ return (
+ n.sort(function (t, e) {
+ return t.content.localeCompare(e.content, "en");
+ }),
+ t.factory.get("subMenu")(t.factory, { items: n, id: "Language" }, e)
+ );
+ });
+ },
+ function (t, e, o) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.isObject = MathJax._.components.global.isObject),
+ (e.combineConfig = MathJax._.components.global.combineConfig),
+ (e.combineDefaults = MathJax._.components.global.combineDefaults),
+ (e.combineWithMathJax = MathJax._.components.global.combineWithMathJax),
+ (e.MathJax = MathJax._.components.global.MathJax);
+ },
+ function (t, e, o) {
+ "use strict";
+ var r,
+ n =
+ (this && this.__extends) ||
+ ((r = function (t, e) {
+ return (r =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var o in e) e.hasOwnProperty(o) && (t[o] = e[o]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function o() {
+ this.constructor = t;
+ }
+ r(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((o.prototype = e.prototype), new o()));
+ }),
+ i =
+ (this && this.__read) ||
+ function (t, e) {
+ var o = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!o) return t;
+ var r,
+ n,
+ i = o.call(t),
+ a = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(r = i.next()).done; )
+ a.push(r.value);
+ } catch (t) {
+ n = { error: t };
+ } finally {
+ try {
+ r && !r.done && (o = i.return) && o.call(i);
+ } finally {
+ if (n) throw n.error;
+ }
+ }
+ return a;
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.Magnifier = e.SpeechExplorer = e.AbstractKeyExplorer = void 0);
+ var a = o(1),
+ s = o(0),
+ l = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (
+ (e.events = t.prototype.Events.call(e).concat([
+ ["keydown", e.KeyDown.bind(e)],
+ ["focusin", e.FocusIn.bind(e)],
+ ["focusout", e.FocusOut.bind(e)],
+ ])),
+ (e.oldIndex = null),
+ e
+ );
+ }
+ return (
+ n(e, t),
+ (e.prototype.FocusIn = function (t) {}),
+ (e.prototype.FocusOut = function (t) {
+ this.Stop();
+ }),
+ (e.prototype.Update = function (t) {
+ void 0 === t && (t = !1),
+ (this.active || t) &&
+ (this.highlighter.unhighlight(),
+ this.highlighter.highlight(
+ this.walker.getFocus(!0).getNodes(),
+ ));
+ }),
+ (e.prototype.Attach = function () {
+ t.prototype.Attach.call(this),
+ (this.oldIndex = this.node.tabIndex),
+ (this.node.tabIndex = 1),
+ this.node.setAttribute("role", "application");
+ }),
+ (e.prototype.Detach = function () {
+ (this.node.tabIndex = this.oldIndex),
+ (this.oldIndex = null),
+ this.node.removeAttribute("role"),
+ t.prototype.Detach.call(this);
+ }),
+ (e.prototype.Stop = function () {
+ this.active &&
+ (this.highlighter.unhighlight(), this.walker.deactivate()),
+ t.prototype.Stop.call(this);
+ }),
+ e
+ );
+ })(a.AbstractExplorer);
+ e.AbstractKeyExplorer = l;
+ var c = (function (t) {
+ function e(e, o, r, n) {
+ var i = t.call(this, e, o, r) || this;
+ return (
+ (i.document = e),
+ (i.region = o),
+ (i.node = r),
+ (i.mml = n),
+ (i.showRegion = "subtitles"),
+ (i.init = !1),
+ (i.restarted = !1),
+ i.initWalker(),
+ i
+ );
+ }
+ return (
+ n(e, t),
+ (e.prototype.Start = function () {
+ var e = this,
+ o = this.getOptions();
+ if (!this.init)
+ return (
+ (this.init = !0),
+ void s
+ .sreReady()
+ .then(function () {
+ SRE.engineSetup().locale !== o.locale &&
+ SRE.setupEngine({ locale: o.locale }),
+ s.sreReady().then(function () {
+ e.Speech(e.walker), e.Start();
+ });
+ })
+ .catch(function (t) {
+ return console.log(t.message);
+ })
+ );
+ t.prototype.Start.call(this),
+ (this.speechGenerator =
+ sre.SpeechGeneratorFactory.generator("Direct")),
+ this.speechGenerator.setOptions(o),
+ (this.walker = sre.WalkerFactory.walker(
+ "table",
+ this.node,
+ this.speechGenerator,
+ this.highlighter,
+ this.mml,
+ )),
+ this.walker.activate(),
+ this.Update(),
+ this.document.options.a11y[this.showRegion] &&
+ this.region.Show(this.node, this.highlighter),
+ (this.restarted = !0);
+ }),
+ (e.prototype.Update = function (e) {
+ void 0 === e && (e = !1),
+ t.prototype.Update.call(this, e),
+ this.region.Update(this.walker.speech());
+ var o = this.speechGenerator.getOptions();
+ "speech" === o.modality &&
+ (this.document.options.a11y.speechRules = o.domain + "-" + o.style);
+ }),
+ (e.prototype.Speech = function (t) {
+ t.speech(),
+ this.node.setAttribute("hasspeech", "true"),
+ this.Update(),
+ this.restarted &&
+ this.document.options.a11y[this.showRegion] &&
+ this.region.Show(this.node, this.highlighter);
+ }),
+ (e.prototype.KeyDown = function (t) {
+ var e = t.keyCode;
+ return 27 === e
+ ? (this.Stop(), void this.stopEvent(t))
+ : this.active
+ ? (this.Move(e), void this.stopEvent(t))
+ : void (
+ ((32 === e && t.shiftKey) || 13 === e) &&
+ (this.Start(), this.stopEvent(t))
+ );
+ }),
+ (e.prototype.Move = function (t) {
+ this.walker.move(t), this.Update();
+ }),
+ (e.prototype.initWalker = function () {
+ this.speechGenerator = sre.SpeechGeneratorFactory.generator("Tree");
+ var t = sre.WalkerFactory.walker(
+ "dummy",
+ this.node,
+ this.speechGenerator,
+ this.highlighter,
+ this.mml,
+ );
+ this.walker = t;
+ }),
+ (e.prototype.getOptions = function () {
+ var t = this.speechGenerator.getOptions(),
+ e = i(this.document.options.a11y.speechRules.split("-"), 2),
+ o = e[0],
+ r = e[1];
+ return (
+ "speech" !== t.modality ||
+ (t.locale === this.document.options.a11y.locale &&
+ t.domain === o &&
+ t.style === r) ||
+ ((t.domain = o),
+ (t.style = r),
+ (t.locale = this.document.options.a11y.locale),
+ this.walker.update(t)),
+ t
+ );
+ }),
+ e
+ );
+ })(l);
+ e.SpeechExplorer = c;
+ var h = (function (t) {
+ function e(e, o, r, n) {
+ var i = t.call(this, e, o, r) || this;
+ return (
+ (i.document = e),
+ (i.region = o),
+ (i.node = r),
+ (i.mml = n),
+ (i.walker = sre.WalkerFactory.walker(
+ "table",
+ i.node,
+ sre.SpeechGeneratorFactory.generator("Dummy"),
+ i.highlighter,
+ i.mml,
+ )),
+ i
+ );
+ }
+ return (
+ n(e, t),
+ (e.prototype.Update = function (e) {
+ void 0 === e && (e = !1),
+ t.prototype.Update.call(this, e),
+ this.showFocus();
+ }),
+ (e.prototype.Start = function () {
+ t.prototype.Start.call(this),
+ this.region.Show(this.node, this.highlighter),
+ this.walker.activate(),
+ this.Update();
+ }),
+ (e.prototype.showFocus = function () {
+ var t = this.walker.getFocus().getNodes()[0];
+ this.region.Show(t, this.highlighter);
+ }),
+ (e.prototype.Move = function (t) {
+ this.walker.move(t) && this.Update();
+ }),
+ (e.prototype.KeyDown = function (t) {
+ var e = t.keyCode;
+ return 27 === e
+ ? (this.Stop(), void this.stopEvent(t))
+ : this.active && 13 !== e
+ ? (this.Move(e), void this.stopEvent(t))
+ : void (
+ ((32 === e && t.shiftKey) || 13 === e) &&
+ (this.Start(), this.stopEvent(t))
+ );
+ }),
+ e
+ );
+ })(l);
+ e.Magnifier = h;
+ },
+ function (t, e, o) {
+ "use strict";
+ var r,
+ n =
+ (this && this.__extends) ||
+ ((r = function (t, e) {
+ return (r =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var o in e) e.hasOwnProperty(o) && (t[o] = e[o]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function o() {
+ this.constructor = t;
+ }
+ r(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((o.prototype = e.prototype), new o()));
+ }),
+ i =
+ (this && this.__read) ||
+ function (t, e) {
+ var o = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!o) return t;
+ var r,
+ n,
+ i = o.call(t),
+ a = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(r = i.next()).done; )
+ a.push(r.value);
+ } catch (t) {
+ n = { error: t };
+ } finally {
+ try {
+ r && !r.done && (o = i.return) && o.call(i);
+ } finally {
+ if (n) throw n.error;
+ }
+ }
+ return a;
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.FlameHoverer =
+ e.ContentHoverer =
+ e.ValueHoverer =
+ e.Hoverer =
+ e.AbstractMouseExplorer =
+ void 0);
+ var a = o(2),
+ s = o(1);
+ o(0);
+ var l = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (
+ (e.events = t.prototype.Events.call(e).concat([
+ ["mouseover", e.MouseOver.bind(e)],
+ ["mouseout", e.MouseOut.bind(e)],
+ ])),
+ e
+ );
+ }
+ return (
+ n(e, t),
+ (e.prototype.MouseOver = function (t) {
+ this.Start();
+ }),
+ (e.prototype.MouseOut = function (t) {
+ this.Stop();
+ }),
+ e
+ );
+ })(s.AbstractExplorer);
+ e.AbstractMouseExplorer = l;
+ var c = (function (t) {
+ function e(e, o, r, n, i) {
+ var a = t.call(this, e, o, r) || this;
+ return (
+ (a.document = e),
+ (a.region = o),
+ (a.node = r),
+ (a.nodeQuery = n),
+ (a.nodeAccess = i),
+ a
+ );
+ }
+ return (
+ n(e, t),
+ (e.prototype.MouseOut = function (e) {
+ (e.clientX === this.coord[0] && e.clientY === this.coord[1]) ||
+ (this.highlighter.unhighlight(),
+ this.region.Hide(),
+ t.prototype.MouseOut.call(this, e));
+ }),
+ (e.prototype.MouseOver = function (e) {
+ t.prototype.MouseOver.call(this, e);
+ var o = e.target;
+ this.coord = [e.clientX, e.clientY];
+ var r = i(this.getNode(o), 2),
+ n = r[0],
+ a = r[1];
+ n &&
+ (this.highlighter.unhighlight(),
+ this.highlighter.highlight([n]),
+ this.region.Update(a),
+ this.region.Show(n, this.highlighter));
+ }),
+ (e.prototype.getNode = function (t) {
+ for (var e = t; t && t !== this.node; ) {
+ if (this.nodeQuery(t)) return [t, this.nodeAccess(t)];
+ t = t.parentNode;
+ }
+ for (t = e; t; ) {
+ if (this.nodeQuery(t)) return [t, this.nodeAccess(t)];
+ var o = t.childNodes[0];
+ t = o && "defs" === o.tagName ? t.childNodes[1] : o;
+ }
+ return [null, null];
+ }),
+ e
+ );
+ })(l);
+ e.Hoverer = c;
+ var h = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return n(e, t), e;
+ })(c);
+ e.ValueHoverer = h;
+ var u = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return n(e, t), e;
+ })(c);
+ e.ContentHoverer = u;
+ var p = (function (t) {
+ function e(e, o, r) {
+ var n =
+ t.call(
+ this,
+ e,
+ new a.DummyRegion(e),
+ r,
+ function (t) {
+ return n.highlighter.isMactionNode(t);
+ },
+ function () {},
+ ) || this;
+ return (n.document = e), (n.node = r), n;
+ }
+ return n(e, t), e;
+ })(c);
+ e.FlameHoverer = p;
+ },
+ function (t, e, o) {
+ "use strict";
+ var r,
+ n =
+ (this && this.__extends) ||
+ ((r = function (t, e) {
+ return (r =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var o in e) e.hasOwnProperty(o) && (t[o] = e[o]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function o() {
+ this.constructor = t;
+ }
+ r(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((o.prototype = e.prototype), new o()));
+ });
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.TreeColorer = e.FlameColorer = e.AbstractTreeExplorer = void 0);
+ var i = o(1);
+ o(0);
+ var a = (function (t) {
+ function e(e, o, r, n) {
+ var i = t.call(this, e, null, r) || this;
+ return (
+ (i.document = e),
+ (i.region = o),
+ (i.node = r),
+ (i.mml = n),
+ (i.stoppable = !1),
+ i
+ );
+ }
+ return (
+ n(e, t),
+ (e.prototype.Attach = function () {
+ t.prototype.Attach.call(this), this.Start();
+ }),
+ (e.prototype.Detach = function () {
+ this.Stop(), t.prototype.Detach.call(this);
+ }),
+ e
+ );
+ })(i.AbstractExplorer);
+ e.AbstractTreeExplorer = a;
+ var s = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ n(e, t),
+ (e.prototype.Start = function () {
+ this.active ||
+ ((this.active = !0), this.highlighter.highlightAll(this.node));
+ }),
+ (e.prototype.Stop = function () {
+ this.active && this.highlighter.unhighlightAll(this.node),
+ (this.active = !1);
+ }),
+ e
+ );
+ })(a);
+ e.FlameColorer = s;
+ var l = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ n(e, t),
+ (e.prototype.Start = function () {
+ if (!this.active) {
+ this.active = !0;
+ var t = sre.SpeechGeneratorFactory.generator("Color");
+ this.node.hasAttribute("hasforegroundcolor") ||
+ (t.generateSpeech(this.node, this.mml),
+ this.node.setAttribute("hasforegroundcolor", "true")),
+ this.highlighter.colorizeAll(this.node);
+ }
+ }),
+ (e.prototype.Stop = function () {
+ this.active && this.highlighter.uncolorizeAll(this.node),
+ (this.active = !1);
+ }),
+ e
+ );
+ })(a);
+ e.TreeColorer = l;
+ },
+ function (t, e, o) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.protoItem = MathJax._.core.MathItem.protoItem),
+ (e.AbstractMathItem = MathJax._.core.MathItem.AbstractMathItem),
+ (e.STATE = MathJax._.core.MathItem.STATE),
+ (e.newState = MathJax._.core.MathItem.newState);
+ },
+ function (t, e, o) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.EnrichedMathItemMixin =
+ MathJax._.a11y["semantic-enrich"].EnrichedMathItemMixin),
+ (e.EnrichedMathDocumentMixin =
+ MathJax._.a11y["semantic-enrich"].EnrichedMathDocumentMixin),
+ (e.EnrichHandler = MathJax._.a11y["semantic-enrich"].EnrichHandler);
+ },
+ function (t, e, o) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.APPEND = MathJax._.util.Options.APPEND),
+ (e.REMOVE = MathJax._.util.Options.REMOVE),
+ (e.Expandable = MathJax._.util.Options.Expandable),
+ (e.expandable = MathJax._.util.Options.expandable),
+ (e.makeArray = MathJax._.util.Options.makeArray),
+ (e.keys = MathJax._.util.Options.keys),
+ (e.copy = MathJax._.util.Options.copy),
+ (e.insert = MathJax._.util.Options.insert),
+ (e.defaultOptions = MathJax._.util.Options.defaultOptions),
+ (e.userOptions = MathJax._.util.Options.userOptions),
+ (e.selectOptions = MathJax._.util.Options.selectOptions),
+ (e.selectOptionsFromKeys = MathJax._.util.Options.selectOptionsFromKeys),
+ (e.separateOptions = MathJax._.util.Options.separateOptions);
+ },
+ function (t, e, o) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.DATAMJX = MathJax._.core.MmlTree.SerializedMmlVisitor.DATAMJX),
+ (e.toEntity = MathJax._.core.MmlTree.SerializedMmlVisitor.toEntity),
+ (e.SerializedMmlVisitor =
+ MathJax._.core.MmlTree.SerializedMmlVisitor.SerializedMmlVisitor);
+ },
+ function (t, e, o) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MJContextMenu = MathJax._.ui.menu.MJContextMenu.MJContextMenu);
+ },
+ function (t, e, o) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.CssStyles = MathJax._.util.StyleList.CssStyles);
+ },
+ function (t, e, o) {
+ "use strict";
+ o.r(e);
+ var r = o(4),
+ n = o(3),
+ i = o(1),
+ a = o(5),
+ s = o(6),
+ l = o(2),
+ c = o(7),
+ h = o(0);
+ Object(r.combineWithMathJax)({
+ _: {
+ a11y: {
+ explorer_ts: n,
+ explorer: {
+ Explorer: i,
+ KeyExplorer: a,
+ MouseExplorer: s,
+ Region: l,
+ TreeExplorer: c,
+ },
+ sre: h,
+ },
+ },
+ }),
+ MathJax.startup &&
+ MathJax.startup.extendHandler(function (t) {
+ return Object(n.ExplorerHandler)(t);
+ });
+ },
+]);
diff --git a/assets/bower_components/MathJax/es5/a11y/semantic-enrich.js b/assets/bower_components/MathJax/es5/a11y/semantic-enrich.js
new file mode 100644
index 0000000..ca11438
--- /dev/null
+++ b/assets/bower_components/MathJax/es5/a11y/semantic-enrich.js
@@ -0,0 +1,465 @@
+!(function (t) {
+ var e = {};
+ function n(r) {
+ if (e[r]) return e[r].exports;
+ var i = (e[r] = { i: r, l: !1, exports: {} });
+ return t[r].call(i.exports, i, i.exports, n), (i.l = !0), i.exports;
+ }
+ (n.m = t),
+ (n.c = e),
+ (n.d = function (t, e, r) {
+ n.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: r });
+ }),
+ (n.r = function (t) {
+ "undefined" != typeof Symbol &&
+ Symbol.toStringTag &&
+ Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }),
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ }),
+ (n.t = function (t, e) {
+ if ((1 & e && (t = n(t)), 8 & e)) return t;
+ if (4 & e && "object" == typeof t && t && t.__esModule) return t;
+ var r = Object.create(null);
+ if (
+ (n.r(r),
+ Object.defineProperty(r, "default", { enumerable: !0, value: t }),
+ 2 & e && "string" != typeof t)
+ )
+ for (var i in t)
+ n.d(
+ r,
+ i,
+ function (e) {
+ return t[e];
+ }.bind(null, i),
+ );
+ return r;
+ }),
+ (n.n = function (t) {
+ var e =
+ t && t.__esModule
+ ? function () {
+ return t.default;
+ }
+ : function () {
+ return t;
+ };
+ return n.d(e, "a", e), e;
+ }),
+ (n.o = function (t, e) {
+ return Object.prototype.hasOwnProperty.call(t, e);
+ }),
+ (n.p = ""),
+ n((n.s = 9));
+})([
+ function (t, e, n) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.sreReady = void 0);
+ var r = n(8),
+ i =
+ "undefined" == typeof window
+ ? "./a11y/sre-node.js"
+ : "../../../speech-rule-engine/lib/sre_browser.js",
+ a = "undefined" == typeof sre ? r.asyncLoad(i) : Promise.resolve();
+ e.sreReady = function () {
+ return new Promise(function (t, e) {
+ a.then(function () {
+ var n = new Date().getTime(),
+ r = function () {
+ sre.Engine.isReady()
+ ? t()
+ : new Date().getTime() - n < 2e4
+ ? setTimeout(r, 100)
+ : e("Timed out waiting for Speech-Rule-Engine");
+ };
+ r();
+ }).catch(function (t) {
+ return e(t.message || t);
+ });
+ });
+ };
+ },
+ function (t, e, n) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.isObject = MathJax._.components.global.isObject),
+ (e.combineConfig = MathJax._.components.global.combineConfig),
+ (e.combineDefaults = MathJax._.components.global.combineDefaults),
+ (e.combineWithMathJax = MathJax._.components.global.combineWithMathJax),
+ (e.MathJax = MathJax._.components.global.MathJax);
+ },
+ function (t, e, n) {
+ "use strict";
+ var r,
+ i =
+ (this && this.__extends) ||
+ ((r = function (t, e) {
+ return (r =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function n() {
+ this.constructor = t;
+ }
+ r(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((n.prototype = e.prototype), new n()));
+ }),
+ a =
+ (this && this.__assign) ||
+ function () {
+ return (a =
+ Object.assign ||
+ function (t) {
+ for (var e, n = 1, r = arguments.length; n < r; n++)
+ for (var i in (e = arguments[n]))
+ Object.prototype.hasOwnProperty.call(e, i) && (t[i] = e[i]);
+ return t;
+ }).apply(this, arguments);
+ },
+ o =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ n = e && t[e],
+ r = 0;
+ if (n) return n.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && r >= t.length && (t = void 0),
+ { value: t && t[r++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ },
+ s =
+ (this && this.__read) ||
+ function (t, e) {
+ var n = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!n) return t;
+ var r,
+ i,
+ a = n.call(t),
+ o = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(r = a.next()).done; )
+ o.push(r.value);
+ } catch (t) {
+ i = { error: t };
+ } finally {
+ try {
+ r && !r.done && (n = a.return) && n.call(a);
+ } finally {
+ if (i) throw i.error;
+ }
+ }
+ return o;
+ },
+ c =
+ (this && this.__spread) ||
+ function () {
+ for (var t = [], e = 0; e < arguments.length; e++)
+ t = t.concat(s(arguments[e]));
+ return t;
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.EnrichHandler =
+ e.EnrichedMathDocumentMixin =
+ e.EnrichedMathItemMixin =
+ void 0);
+ var l = n(4),
+ u = n(5),
+ h = n(6),
+ p = n(7),
+ f = n(0),
+ d = "none";
+ function y(t, e, n) {
+ return (function (t) {
+ function r() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ i(r, t),
+ (r.prototype.serializeMml = function (t) {
+ if ("outerHTML" in t) return t.outerHTML;
+ if (
+ "undefined" != typeof Element &&
+ "undefined" != typeof window &&
+ t instanceof Element
+ ) {
+ var e = window.document.createElement("div");
+ return e.appendChild(t), e.innerHTML;
+ }
+ return t.toString();
+ }),
+ (r.prototype.enrich = function (t, r) {
+ if (
+ (void 0 === r && (r = !1), !(this.state() >= u.STATE.ENRICHED))
+ ) {
+ if (!this.isEscaped && (t.options.enableEnrichment || r)) {
+ ("undefined" != typeof sre && sre.Engine.isReady()) ||
+ l.mathjax.retryAfter(f.sreReady()),
+ t.options.enrichSpeech !== d &&
+ (SRE.setupEngine({ speech: t.options.enrichSpeech }),
+ (d = t.options.enrichSpeech));
+ var i = new t.options.MathItem("", e);
+ (i.math = this.serializeMml(SRE.toEnriched(n(this.root)))),
+ (i.display = this.display),
+ i.compile(t),
+ (this.root = i.root),
+ (this.inputData.originalMml = i.math);
+ }
+ this.state(u.STATE.ENRICHED);
+ }
+ }),
+ (r.prototype.attachSpeech = function (t) {
+ var e, n;
+ if (!(this.state() >= u.STATE.ATTACHSPEECH)) {
+ var r =
+ this.root.attributes.get("aria-label") ||
+ this.getSpeech(this.root);
+ if (r) {
+ var i = t.adaptor,
+ a = this.typesetRoot;
+ i.setAttribute(a, "aria-label", r);
+ try {
+ for (
+ var s = o(i.childNodes(a)), c = s.next();
+ !c.done;
+ c = s.next()
+ ) {
+ var l = c.value;
+ i.setAttribute(l, "aria-hidden", "true");
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ c && !c.done && (n = s.return) && n.call(s);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ }
+ this.state(u.STATE.ATTACHSPEECH);
+ }
+ }),
+ (r.prototype.getSpeech = function (t) {
+ var e,
+ n,
+ r = t.attributes;
+ if (!r) return "";
+ var i = r.getExplicit("data-semantic-speech");
+ if (!r.getExplicit("data-semantic-parent") && i) return i;
+ try {
+ for (
+ var a = o(t.childNodes), s = a.next();
+ !s.done;
+ s = a.next()
+ ) {
+ var c = s.value,
+ l = this.getSpeech(c);
+ if (null != l) return l;
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ s && !s.done && (n = a.return) && n.call(a);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ return "";
+ }),
+ r
+ );
+ })(t);
+ }
+ function M(t, e) {
+ var n;
+ return (
+ ((n = (function (t) {
+ function n() {
+ for (var n = [], r = 0; r < arguments.length; r++)
+ n[r] = arguments[r];
+ var i = t.apply(this, c(n)) || this;
+ e.setMmlFactory(i.mmlFactory);
+ var a = i.constructor.ProcessBits;
+ a.has("enriched") ||
+ (a.allocate("enriched"), a.allocate("attach-speech"));
+ var o = new h.SerializedMmlVisitor(i.mmlFactory),
+ s = function (t) {
+ return o.visitTree(t);
+ };
+ return (i.options.MathItem = y(i.options.MathItem, e, s)), i;
+ }
+ return (
+ i(n, t),
+ (n.prototype.attachSpeech = function () {
+ var t, e;
+ if (!this.processed.isSet("attach-speech")) {
+ try {
+ for (
+ var n = o(this.math), r = n.next();
+ !r.done;
+ r = n.next()
+ ) {
+ r.value.attachSpeech(this);
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ r && !r.done && (e = n.return) && e.call(n);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ this.processed.set("attach-speech");
+ }
+ return this;
+ }),
+ (n.prototype.enrich = function () {
+ var t, e;
+ if (!this.processed.isSet("enriched")) {
+ if (this.options.enableEnrichment)
+ try {
+ for (
+ var n = o(this.math), r = n.next();
+ !r.done;
+ r = n.next()
+ ) {
+ r.value.enrich(this);
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ r && !r.done && (e = n.return) && e.call(n);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ this.processed.set("enriched");
+ }
+ return this;
+ }),
+ (n.prototype.state = function (e, n) {
+ return (
+ void 0 === n && (n = !1),
+ t.prototype.state.call(this, e, n),
+ e < u.STATE.ENRICHED && this.processed.clear("enriched"),
+ this
+ );
+ }),
+ n
+ );
+ })(t)).OPTIONS = a(a({}, t.OPTIONS), {
+ enableEnrichment: !0,
+ enrichSpeech: "none",
+ renderActions: p.expandable(
+ a(a({}, t.OPTIONS.renderActions), {
+ enrich: [u.STATE.ENRICHED],
+ attachSpeech: [u.STATE.ATTACHSPEECH],
+ }),
+ ),
+ })),
+ n
+ );
+ }
+ u.newState("ENRICHED", 30),
+ u.newState("ATTACHSPEECH", 155),
+ (e.EnrichedMathItemMixin = y),
+ (e.EnrichedMathDocumentMixin = M),
+ (e.EnrichHandler = function (t, e) {
+ return (
+ e.setAdaptor(t.adaptor), (t.documentClass = M(t.documentClass, e)), t
+ );
+ });
+ },
+ function (t, e, n) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MathML = MathJax._.input.mathml_ts.MathML);
+ },
+ function (t, e, n) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.mathjax = MathJax._.mathjax.mathjax);
+ },
+ function (t, e, n) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.protoItem = MathJax._.core.MathItem.protoItem),
+ (e.AbstractMathItem = MathJax._.core.MathItem.AbstractMathItem),
+ (e.STATE = MathJax._.core.MathItem.STATE),
+ (e.newState = MathJax._.core.MathItem.newState);
+ },
+ function (t, e, n) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.DATAMJX = MathJax._.core.MmlTree.SerializedMmlVisitor.DATAMJX),
+ (e.toEntity = MathJax._.core.MmlTree.SerializedMmlVisitor.toEntity),
+ (e.SerializedMmlVisitor =
+ MathJax._.core.MmlTree.SerializedMmlVisitor.SerializedMmlVisitor);
+ },
+ function (t, e, n) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.APPEND = MathJax._.util.Options.APPEND),
+ (e.REMOVE = MathJax._.util.Options.REMOVE),
+ (e.Expandable = MathJax._.util.Options.Expandable),
+ (e.expandable = MathJax._.util.Options.expandable),
+ (e.makeArray = MathJax._.util.Options.makeArray),
+ (e.keys = MathJax._.util.Options.keys),
+ (e.copy = MathJax._.util.Options.copy),
+ (e.insert = MathJax._.util.Options.insert),
+ (e.defaultOptions = MathJax._.util.Options.defaultOptions),
+ (e.userOptions = MathJax._.util.Options.userOptions),
+ (e.selectOptions = MathJax._.util.Options.selectOptions),
+ (e.selectOptionsFromKeys = MathJax._.util.Options.selectOptionsFromKeys),
+ (e.separateOptions = MathJax._.util.Options.separateOptions);
+ },
+ function (t, e, n) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.asyncLoad = MathJax._.util.AsyncLoad.asyncLoad);
+ },
+ function (t, e, n) {
+ "use strict";
+ n.r(e);
+ var r = n(1),
+ i = n(2),
+ a = n(0);
+ Object(r.combineWithMathJax)({
+ _: { a11y: { "semantic-enrich": i, sre: a } },
+ });
+ var o = n(3);
+ MathJax.loader &&
+ Object(r.combineDefaults)(MathJax.config.loader, "a11y/semantic-enrich", {
+ checkReady: function () {
+ return Object(a.sreReady)();
+ },
+ }),
+ MathJax.startup &&
+ MathJax.startup.extendHandler(function (t) {
+ return Object(i.EnrichHandler)(t, new o.MathML());
+ });
+ },
+]);
diff --git a/assets/bower_components/MathJax/es5/adaptors/liteDOM.js b/assets/bower_components/MathJax/es5/adaptors/liteDOM.js
new file mode 100644
index 0000000..c97d7d6
--- /dev/null
+++ b/assets/bower_components/MathJax/es5/adaptors/liteDOM.js
@@ -0,0 +1,1173 @@
+!(function (t) {
+ var e = {};
+ function n(r) {
+ if (e[r]) return e[r].exports;
+ var o = (e[r] = { i: r, l: !1, exports: {} });
+ return t[r].call(o.exports, o, o.exports, n), (o.l = !0), o.exports;
+ }
+ (n.m = t),
+ (n.c = e),
+ (n.d = function (t, e, r) {
+ n.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: r });
+ }),
+ (n.r = function (t) {
+ "undefined" != typeof Symbol &&
+ Symbol.toStringTag &&
+ Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }),
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ }),
+ (n.t = function (t, e) {
+ if ((1 & e && (t = n(t)), 8 & e)) return t;
+ if (4 & e && "object" == typeof t && t && t.__esModule) return t;
+ var r = Object.create(null);
+ if (
+ (n.r(r),
+ Object.defineProperty(r, "default", { enumerable: !0, value: t }),
+ 2 & e && "string" != typeof t)
+ )
+ for (var o in t)
+ n.d(
+ r,
+ o,
+ function (e) {
+ return t[e];
+ }.bind(null, o),
+ );
+ return r;
+ }),
+ (n.n = function (t) {
+ var e =
+ t && t.__esModule
+ ? function () {
+ return t.default;
+ }
+ : function () {
+ return t;
+ };
+ return n.d(e, "a", e), e;
+ }),
+ (n.o = function (t, e) {
+ return Object.prototype.hasOwnProperty.call(t, e);
+ }),
+ (n.p = ""),
+ n((n.s = 12));
+})([
+ function (t, e, n) {
+ "use strict";
+ var r =
+ (this && this.__assign) ||
+ function () {
+ return (r =
+ Object.assign ||
+ function (t) {
+ for (var e, n = 1, r = arguments.length; n < r; n++)
+ for (var o in (e = arguments[n]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ },
+ o =
+ (this && this.__read) ||
+ function (t, e) {
+ var n = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!n) return t;
+ var r,
+ o,
+ i = n.call(t),
+ a = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(r = i.next()).done; )
+ a.push(r.value);
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ r && !r.done && (n = i.return) && n.call(i);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ return a;
+ },
+ i =
+ (this && this.__spread) ||
+ function () {
+ for (var t = [], e = 0; e < arguments.length; e++)
+ t = t.concat(o(arguments[e]));
+ return t;
+ },
+ a =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ n = e && t[e],
+ r = 0;
+ if (n) return n.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && r >= t.length && (t = void 0),
+ { value: t && t[r++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.LiteElement = void 0);
+ var u = function (t, e, n) {
+ var o, u;
+ void 0 === e && (e = {}),
+ void 0 === n && (n = []),
+ (this.kind = t),
+ (this.attributes = r({}, e)),
+ (this.children = i(n));
+ try {
+ for (var l = a(this.children), s = l.next(); !s.done; s = l.next())
+ s.value.parent = this;
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ s && !s.done && (u = l.return) && u.call(l);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ this.styles = null;
+ };
+ e.LiteElement = u;
+ },
+ function (t, e, n) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.LiteDocument = void 0);
+ var r = n(0),
+ o = (function () {
+ function t() {
+ (this.root = new r.LiteElement("html", {}, [
+ (this.head = new r.LiteElement("head")),
+ (this.body = new r.LiteElement("body")),
+ ])),
+ (this.type = "");
+ }
+ return (
+ Object.defineProperty(t.prototype, "kind", {
+ get: function () {
+ return "#document";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ t
+ );
+ })();
+ e.LiteDocument = o;
+ },
+ function (t, e, n) {
+ "use strict";
+ var r,
+ o =
+ (this && this.__extends) ||
+ ((r = function (t, e) {
+ return (r =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function n() {
+ this.constructor = t;
+ }
+ r(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((n.prototype = e.prototype), new n()));
+ });
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.LiteComment = e.LiteText = void 0);
+ var i = (function () {
+ function t(t) {
+ void 0 === t && (t = ""), (this.value = t);
+ }
+ return (
+ Object.defineProperty(t.prototype, "kind", {
+ get: function () {
+ return "#text";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ t
+ );
+ })();
+ e.LiteText = i;
+ var a = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "#comment";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ e
+ );
+ })(i);
+ e.LiteComment = a;
+ },
+ function (t, e, n) {
+ "use strict";
+ var r =
+ (this && this.__read) ||
+ function (t, e) {
+ var n = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!n) return t;
+ var r,
+ o,
+ i = n.call(t),
+ a = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(r = i.next()).done; )
+ a.push(r.value);
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ r && !r.done && (n = i.return) && n.call(i);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ return a;
+ },
+ o =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ n = e && t[e],
+ r = 0;
+ if (n) return n.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && r >= t.length && (t = void 0),
+ { value: t && t[r++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.LiteParser = e.PATTERNS = void 0);
+ var i,
+ a = n(9),
+ u = n(0),
+ l = n(2);
+ !(function (t) {
+ (t.TAGNAME = "[a-z][^\\s\\n>]*"),
+ (t.ATTNAME = "[a-z][^\\s\\n>=]*"),
+ (t.VALUE = "(?:'[^']*'|\"[^\"]*\"|[^\\s\\n]+)"),
+ (t.VALUESPLIT = "(?:'([^']*)'|\"([^\"]*)\"|([^\\s\\n]+))"),
+ (t.SPACE = "(?:\\s|\\n)+"),
+ (t.OPTIONALSPACE = "(?:\\s|\\n)*"),
+ (t.ATTRIBUTE =
+ t.ATTNAME +
+ "(?:" +
+ t.OPTIONALSPACE +
+ "=" +
+ t.OPTIONALSPACE +
+ t.VALUE +
+ ")?"),
+ (t.ATTRIBUTESPLIT =
+ "(" +
+ t.ATTNAME +
+ ")(?:" +
+ t.OPTIONALSPACE +
+ "=" +
+ t.OPTIONALSPACE +
+ t.VALUESPLIT +
+ ")?"),
+ (t.TAG =
+ "(<(?:" +
+ t.TAGNAME +
+ "(?:" +
+ t.SPACE +
+ t.ATTRIBUTE +
+ ")*" +
+ t.OPTIONALSPACE +
+ "/?|/" +
+ t.TAGNAME +
+ "|!--[^]*?--|![^]*?)(?:>|$))"),
+ (t.tag = new RegExp(t.TAG, "i")),
+ (t.attr = new RegExp(t.ATTRIBUTE, "i")),
+ (t.attrsplit = new RegExp(t.ATTRIBUTESPLIT, "i"));
+ })((i = e.PATTERNS || (e.PATTERNS = {})));
+ var s = (function () {
+ function t() {}
+ return (
+ (t.prototype.parseFromString = function (t, e, n) {
+ void 0 === e && (e = "text/html"), void 0 === n && (n = null);
+ for (
+ var r = n.createDocument(),
+ o = n.body(r),
+ a = t.replace(/<\?.*?\?>/g, "").split(i.tag);
+ a.length;
+ ) {
+ var u = a.shift(),
+ l = a.shift();
+ u && this.addText(n, o, u),
+ l &&
+ ">" === l.charAt(l.length - 1) &&
+ ("!" === l.charAt(1)
+ ? this.addComment(n, o, l)
+ : (o =
+ "/" === l.charAt(1)
+ ? this.closeTag(n, o, l)
+ : this.openTag(n, o, l, a)));
+ }
+ return this.checkDocument(n, r), r;
+ }),
+ (t.prototype.addText = function (t, e, n) {
+ return (n = a.translate(n)), t.append(e, t.text(n));
+ }),
+ (t.prototype.addComment = function (t, e, n) {
+ return t.append(e, new l.LiteComment(n));
+ }),
+ (t.prototype.closeTag = function (t, e, n) {
+ for (
+ var r = n.slice(2, n.length - 1).toLowerCase();
+ t.parent(e) && t.kind(e) !== r;
+ )
+ e = t.parent(e);
+ return t.parent(e);
+ }),
+ (t.prototype.openTag = function (t, e, n, r) {
+ var o = this.constructor.PCDATA,
+ a = this.constructor.SELF_CLOSING,
+ u = n.match(/<(.*?)[\s\n>\/]/)[1].toLowerCase(),
+ l = t.node(u),
+ s = n.replace(/^<.*?[\s\n>]/, "").split(i.attrsplit);
+ return (
+ (s.pop().match(/>$/) || s.length < 5) &&
+ (this.addAttributes(t, l, s),
+ t.append(e, l),
+ a[u] ||
+ n.match(/\/>$/) ||
+ (o[u] ? this.handlePCDATA(t, l, u, r) : (e = l))),
+ e
+ );
+ }),
+ (t.prototype.addAttributes = function (t, e, n) {
+ for (var o = this.constructor.CDATA_ATTR; n.length; ) {
+ var i = r(n.splice(0, 5), 5),
+ u = i[1],
+ l = i[2],
+ s = i[3],
+ c = i[4],
+ p = l || s || c || "";
+ o[u] || (p = a.translate(p)), t.setAttribute(e, u, p);
+ }
+ }),
+ (t.prototype.handlePCDATA = function (t, e, n, r) {
+ for (var o = [], i = "" + n + ">", a = ""; r.length && a !== i; )
+ o.push(a), o.push(r.shift()), (a = r.shift());
+ t.append(e, t.text(o.join("")));
+ }),
+ (t.prototype.checkDocument = function (t, e) {
+ var n,
+ r,
+ i,
+ a,
+ u = this.getOnlyChild(t, t.body(e));
+ if (u) {
+ try {
+ for (
+ var s = o(t.childNodes(t.body(e))), c = s.next();
+ !c.done;
+ c = s.next()
+ ) {
+ if ((d = c.value) === u) break;
+ d instanceof l.LiteComment &&
+ d.value.match(/^" +
+ (r[i] ? "" : t.innerHTML(e) + "" + i + ">")
+ );
+ }),
+ (t.prototype.serializeInner = function (t, e) {
+ var n = this;
+ return this.constructor.PCDATA.hasOwnProperty(e.kind)
+ ? t
+ .childNodes(e)
+ .map(function (e) {
+ return t.value(e);
+ })
+ .join("")
+ : t
+ .childNodes(e)
+ .map(function (e) {
+ var r = t.kind(e);
+ return "#text" === r
+ ? n.protectHTML(t.value(e))
+ : "#comment" === r
+ ? e.value
+ : n.serialize(t, e);
+ })
+ .join("");
+ }),
+ (t.prototype.protectAttribute = function (t) {
+ return (
+ "string" != typeof t && (t = String(t)), t.replace(/"/g, """)
+ );
+ }),
+ (t.prototype.protectHTML = function (t) {
+ return t
+ .replace(/&/g, "&")
+ .replace(//g, ">");
+ }),
+ (t.SELF_CLOSING = {
+ area: !0,
+ base: !0,
+ br: !0,
+ col: !0,
+ command: !0,
+ embed: !0,
+ hr: !0,
+ img: !0,
+ input: !0,
+ keygen: !0,
+ link: !0,
+ menuitem: !0,
+ meta: !0,
+ param: !0,
+ source: !0,
+ track: !0,
+ wbr: !0,
+ }),
+ (t.PCDATA = {
+ option: !0,
+ textarea: !0,
+ fieldset: !0,
+ title: !0,
+ style: !0,
+ script: !0,
+ }),
+ (t.CDATA_ATTR = {
+ style: !0,
+ datafld: !0,
+ datasrc: !0,
+ href: !0,
+ src: !0,
+ longdesc: !0,
+ usemap: !0,
+ cite: !0,
+ datetime: !0,
+ action: !0,
+ axis: !0,
+ profile: !0,
+ content: !0,
+ scheme: !0,
+ }),
+ t
+ );
+ })();
+ e.LiteParser = s;
+ },
+ function (t, e, n) {
+ "use strict";
+ var r,
+ o =
+ (this && this.__extends) ||
+ ((r = function (t, e) {
+ return (r =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function n() {
+ this.constructor = t;
+ }
+ r(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((n.prototype = e.prototype), new n()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, n = 1, r = arguments.length; n < r; n++)
+ for (var o in (e = arguments[n]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ },
+ a =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ n = e && t[e],
+ r = 0;
+ if (n) return n.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && r >= t.length && (t = void 0),
+ { value: t && t[r++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ },
+ u =
+ (this && this.__read) ||
+ function (t, e) {
+ var n = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!n) return t;
+ var r,
+ o,
+ i = n.call(t),
+ a = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(r = i.next()).done; )
+ a.push(r.value);
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ r && !r.done && (n = i.return) && n.call(i);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ return a;
+ },
+ l =
+ (this && this.__spread) ||
+ function () {
+ for (var t = [], e = 0; e < arguments.length; e++)
+ t = t.concat(u(arguments[e]));
+ return t;
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.liteAdaptor = e.LiteAdaptor = void 0);
+ var s = n(8),
+ c = n(1),
+ p = n(0),
+ f = n(2),
+ d = n(5),
+ h = n(3),
+ y = n(10),
+ v = n(11),
+ m = (function (t) {
+ function e(e) {
+ void 0 === e && (e = null);
+ var n = t.call(this) || this,
+ r = n.constructor;
+ return (
+ (n.options = v.userOptions(v.defaultOptions({}, r.OPTIONS), e)),
+ (n.parser = new h.LiteParser()),
+ (n.window = new d.LiteWindow()),
+ n
+ );
+ }
+ return (
+ o(e, t),
+ (e.prototype.parse = function (t, e) {
+ return this.parser.parseFromString(t, e, this);
+ }),
+ (e.prototype.create = function (t, e) {
+ return void 0 === e && (e = null), new p.LiteElement(t);
+ }),
+ (e.prototype.text = function (t) {
+ return new f.LiteText(t);
+ }),
+ (e.prototype.comment = function (t) {
+ return new f.LiteComment(t);
+ }),
+ (e.prototype.createDocument = function () {
+ return new c.LiteDocument();
+ }),
+ (e.prototype.head = function (t) {
+ return t.head;
+ }),
+ (e.prototype.body = function (t) {
+ return t.body;
+ }),
+ (e.prototype.root = function (t) {
+ return t.root;
+ }),
+ (e.prototype.doctype = function (t) {
+ return t.type;
+ }),
+ (e.prototype.tags = function (t, e, n) {
+ void 0 === n && (n = null);
+ var r = [],
+ o = [];
+ if (n) return o;
+ for (var i = t; i; ) {
+ var a = i.kind;
+ "#text" !== a &&
+ "#comment" !== a &&
+ ((i = i),
+ a === e && o.push(i),
+ i.children.length && (r = i.children.concat(r))),
+ (i = r.shift());
+ }
+ return o;
+ }),
+ (e.prototype.elementById = function (t, e) {
+ for (var n = [], r = t; r; ) {
+ if ("#text" !== r.kind && "#comment" !== r.kind) {
+ if ((r = r).attributes.id === e) return r;
+ r.children.length && (n = r.children.concat(n));
+ }
+ r = n.shift();
+ }
+ return null;
+ }),
+ (e.prototype.elementsByClass = function (t, e) {
+ for (var n = [], r = [], o = t; o; ) {
+ if ("#text" !== o.kind && "#comment" !== o.kind)
+ ((o = o).attributes.class || "")
+ .trim()
+ .split(/ +/)
+ .includes(e) && r.push(o),
+ o.children.length && (n = o.children.concat(n));
+ o = n.shift();
+ }
+ return r;
+ }),
+ (e.prototype.getElements = function (t, e) {
+ var n,
+ r,
+ o = [],
+ i = this.body(e);
+ try {
+ for (var u = a(t), l = u.next(); !l.done; l = u.next()) {
+ var s = l.value;
+ if ("string" == typeof s)
+ if ("#" === s.charAt(0)) {
+ var c = this.elementById(i, s.slice(1));
+ c && o.push(c);
+ } else
+ "." === s.charAt(0)
+ ? (o = o.concat(this.elementsByClass(i, s.slice(1))))
+ : s.match(/^[-a-z][-a-z0-9]*$/i) &&
+ (o = o.concat(this.tags(i, s)));
+ else
+ Array.isArray(s)
+ ? (o = o.concat(s))
+ : s instanceof this.window.NodeList ||
+ s instanceof this.window.HTMLCollection
+ ? (o = o.concat(s.nodes))
+ : o.push(s);
+ }
+ } catch (t) {
+ n = { error: t };
+ } finally {
+ try {
+ l && !l.done && (r = u.return) && r.call(u);
+ } finally {
+ if (n) throw n.error;
+ }
+ }
+ return o;
+ }),
+ (e.prototype.contains = function (t, e) {
+ for (; e && e !== t; ) e = this.parent(e);
+ return !!e;
+ }),
+ (e.prototype.parent = function (t) {
+ return t.parent;
+ }),
+ (e.prototype.childIndex = function (t) {
+ return t.parent
+ ? t.parent.children.findIndex(function (e) {
+ return e === t;
+ })
+ : -1;
+ }),
+ (e.prototype.append = function (t, e) {
+ return (
+ e.parent && this.remove(e), t.children.push(e), (e.parent = t), e
+ );
+ }),
+ (e.prototype.insert = function (t, e) {
+ if ((t.parent && this.remove(t), e && e.parent)) {
+ var n = this.childIndex(e);
+ e.parent.children.splice(n, 0, t), (t.parent = e.parent);
+ }
+ }),
+ (e.prototype.remove = function (t) {
+ var e = this.childIndex(t);
+ return (
+ e >= 0 && t.parent.children.splice(e, 1), (t.parent = null), t
+ );
+ }),
+ (e.prototype.replace = function (t, e) {
+ var n = this.childIndex(e);
+ return (
+ n >= 0 &&
+ ((e.parent.children[n] = t),
+ (t.parent = e.parent),
+ (e.parent = null)),
+ e
+ );
+ }),
+ (e.prototype.clone = function (t) {
+ var e = this,
+ n = new p.LiteElement(t.kind);
+ return (
+ (n.attributes = i({}, t.attributes)),
+ (n.children = t.children.map(function (t) {
+ if ("#text" === t.kind) return new f.LiteText(t.value);
+ if ("#comment" === t.kind) return new f.LiteComment(t.value);
+ var r = e.clone(t);
+ return (r.parent = n), r;
+ })),
+ n
+ );
+ }),
+ (e.prototype.split = function (t, e) {
+ var n = new f.LiteText(t.value.slice(e));
+ return (
+ (t.value = t.value.slice(0, e)),
+ t.parent.children.splice(this.childIndex(t) + 1, 0, n),
+ (n.parent = t.parent),
+ n
+ );
+ }),
+ (e.prototype.next = function (t) {
+ var e = t.parent;
+ if (!e) return null;
+ var n = this.childIndex(t) + 1;
+ return n >= 0 && n < e.children.length ? e.children[n] : null;
+ }),
+ (e.prototype.previous = function (t) {
+ var e = t.parent;
+ if (!e) return null;
+ var n = this.childIndex(t) - 1;
+ return n >= 0 ? e.children[n] : null;
+ }),
+ (e.prototype.firstChild = function (t) {
+ return t.children[0];
+ }),
+ (e.prototype.lastChild = function (t) {
+ return t.children[t.children.length - 1];
+ }),
+ (e.prototype.childNodes = function (t) {
+ return l(t.children);
+ }),
+ (e.prototype.childNode = function (t, e) {
+ return t.children[e];
+ }),
+ (e.prototype.kind = function (t) {
+ return t.kind;
+ }),
+ (e.prototype.value = function (t) {
+ return "#text" === t.kind
+ ? t.value
+ : "#comment" === t.kind
+ ? t.value.replace(/^$/, "$2")
+ : "";
+ }),
+ (e.prototype.textContent = function (t) {
+ var e = this;
+ return t.children.reduce(function (t, n) {
+ return (
+ t +
+ ("#text" === n.kind
+ ? n.value
+ : "#comment" === n.kind
+ ? ""
+ : e.textContent(n))
+ );
+ }, "");
+ }),
+ (e.prototype.innerHTML = function (t) {
+ return this.parser.serializeInner(this, t);
+ }),
+ (e.prototype.outerHTML = function (t) {
+ return this.parser.serialize(this, t);
+ }),
+ (e.prototype.setAttribute = function (t, e, n, r) {
+ void 0 === r && (r = null),
+ "string" != typeof n && (n = String(n)),
+ r && (e = r.replace(/.*\//, "") + ":" + e.replace(/^.*:/, "")),
+ (t.attributes[e] = n),
+ "style" === e && (t.styles = null);
+ }),
+ (e.prototype.getAttribute = function (t, e) {
+ return t.attributes[e];
+ }),
+ (e.prototype.removeAttribute = function (t, e) {
+ delete t.attributes[e];
+ }),
+ (e.prototype.hasAttribute = function (t, e) {
+ return t.attributes.hasOwnProperty(e);
+ }),
+ (e.prototype.allAttributes = function (t) {
+ var e,
+ n,
+ r = t.attributes,
+ o = [];
+ try {
+ for (
+ var i = a(Object.keys(r)), u = i.next();
+ !u.done;
+ u = i.next()
+ ) {
+ var l = u.value;
+ o.push({ name: l, value: r[l] });
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ u && !u.done && (n = i.return) && n.call(i);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ return o;
+ }),
+ (e.prototype.addClass = function (t, e) {
+ var n = (t.attributes.class || "").split(/ /);
+ n.find(function (t) {
+ return t === e;
+ }) || (n.push(e), (t.attributes.class = n.join(" ")));
+ }),
+ (e.prototype.removeClass = function (t, e) {
+ var n = (t.attributes.class || "").split(/ /),
+ r = n.findIndex(function (t) {
+ return t === e;
+ });
+ r >= 0 && (n.splice(r, 1), (t.attributes.class = n.join(" ")));
+ }),
+ (e.prototype.hasClass = function (t, e) {
+ return !!(t.attributes.class || "").split(/ /).find(function (t) {
+ return t === e;
+ });
+ }),
+ (e.prototype.setStyle = function (t, e, n) {
+ t.styles ||
+ (t.styles = new y.Styles(this.getAttribute(t, "style"))),
+ t.styles.set(e, n),
+ (t.attributes.style = t.styles.cssText);
+ }),
+ (e.prototype.getStyle = function (t, e) {
+ if (!t.styles) {
+ var n = this.getAttribute(t, "style");
+ if (!n) return "";
+ t.styles = new y.Styles(n);
+ }
+ return t.styles.get(e);
+ }),
+ (e.prototype.allStyles = function (t) {
+ return this.getAttribute(t, "style");
+ }),
+ (e.prototype.fontSize = function (t) {
+ return this.options.fontSize;
+ }),
+ (e.prototype.fontFamily = function (t) {
+ return this.options.fontFamily;
+ }),
+ (e.prototype.nodeSize = function (t, e, n) {
+ return (
+ void 0 === e && (e = 1),
+ void 0 === n && (n = null),
+ [0.6 * this.textContent(t).length, 0]
+ );
+ }),
+ (e.prototype.nodeBBox = function (t) {
+ return { left: 0, right: 0, top: 0, bottom: 0 };
+ }),
+ (e.OPTIONS = { fontSize: 16, fontFamily: "Times" }),
+ e
+ );
+ })(s.AbstractDOMAdaptor);
+ (e.LiteAdaptor = m),
+ (e.liteAdaptor = function (t) {
+ return void 0 === t && (t = null), new m(t);
+ });
+ },
+ function (t, e, n) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.LiteWindow = void 0);
+ var r = n(0),
+ o = n(1),
+ i = n(6),
+ a = n(3),
+ u = function () {
+ (this.DOMParser = a.LiteParser),
+ (this.NodeList = i.LiteList),
+ (this.HTMLCollection = i.LiteList),
+ (this.HTMLElement = r.LiteElement),
+ (this.DocumentFragment = i.LiteList),
+ (this.Document = o.LiteDocument),
+ (this.document = new o.LiteDocument());
+ };
+ e.LiteWindow = u;
+ },
+ function (t, e, n) {
+ "use strict";
+ var r =
+ (this && this.__read) ||
+ function (t, e) {
+ var n = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!n) return t;
+ var r,
+ o,
+ i = n.call(t),
+ a = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(r = i.next()).done; )
+ a.push(r.value);
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ r && !r.done && (n = i.return) && n.call(i);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ return a;
+ },
+ o =
+ (this && this.__spread) ||
+ function () {
+ for (var t = [], e = 0; e < arguments.length; e++)
+ t = t.concat(r(arguments[e]));
+ return t;
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.LiteList = void 0);
+ var i = (function () {
+ function t(t) {
+ (this.nodes = []), (this.nodes = o(t));
+ }
+ return (
+ (t.prototype.append = function (t) {
+ this.nodes.push(t);
+ }),
+ (t.prototype[Symbol.iterator] = function () {
+ var t = 0;
+ return {
+ next: function () {
+ return t === this.nodes.length
+ ? { value: null, done: !0 }
+ : { value: this.nodes[t++], done: !1 };
+ },
+ };
+ }),
+ t
+ );
+ })();
+ e.LiteList = i;
+ },
+ function (t, e, n) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.isObject = MathJax._.components.global.isObject),
+ (e.combineConfig = MathJax._.components.global.combineConfig),
+ (e.combineDefaults = MathJax._.components.global.combineDefaults),
+ (e.combineWithMathJax = MathJax._.components.global.combineWithMathJax),
+ (e.MathJax = MathJax._.components.global.MathJax);
+ },
+ function (t, e, n) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.AbstractDOMAdaptor = MathJax._.core.DOMAdaptor.AbstractDOMAdaptor);
+ },
+ function (t, e, n) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.options = MathJax._.util.Entities.options),
+ (e.entities = MathJax._.util.Entities.entities),
+ (e.add = MathJax._.util.Entities.add),
+ (e.remove = MathJax._.util.Entities.remove),
+ (e.translate = MathJax._.util.Entities.translate),
+ (e.numeric = MathJax._.util.Entities.numeric);
+ },
+ function (t, e, n) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.Styles = MathJax._.util.Styles.Styles);
+ },
+ function (t, e, n) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.APPEND = MathJax._.util.Options.APPEND),
+ (e.REMOVE = MathJax._.util.Options.REMOVE),
+ (e.Expandable = MathJax._.util.Options.Expandable),
+ (e.expandable = MathJax._.util.Options.expandable),
+ (e.makeArray = MathJax._.util.Options.makeArray),
+ (e.keys = MathJax._.util.Options.keys),
+ (e.copy = MathJax._.util.Options.copy),
+ (e.insert = MathJax._.util.Options.insert),
+ (e.defaultOptions = MathJax._.util.Options.defaultOptions),
+ (e.userOptions = MathJax._.util.Options.userOptions),
+ (e.selectOptions = MathJax._.util.Options.selectOptions),
+ (e.selectOptionsFromKeys = MathJax._.util.Options.selectOptionsFromKeys),
+ (e.separateOptions = MathJax._.util.Options.separateOptions);
+ },
+ function (t, e, n) {
+ "use strict";
+ n.r(e);
+ var r = n(7),
+ o = n(4),
+ i = n(1),
+ a = n(0),
+ u = n(6),
+ l = n(3),
+ s = n(2),
+ c = n(5);
+ Object(r.combineWithMathJax)({
+ _: {
+ adaptors: {
+ liteAdaptor: o,
+ lite: {
+ Document: i,
+ Element: a,
+ List: u,
+ Parser: l,
+ Text: s,
+ Window: c,
+ },
+ },
+ },
+ }),
+ MathJax.startup &&
+ (MathJax.startup.registerConstructor("liteAdaptor", o.liteAdaptor),
+ MathJax.startup.useAdaptor("liteAdaptor", !0));
+ },
+]);
diff --git a/assets/bower_components/MathJax/es5/core.js b/assets/bower_components/MathJax/es5/core.js
new file mode 100644
index 0000000..a162bdd
--- /dev/null
+++ b/assets/bower_components/MathJax/es5/core.js
@@ -0,0 +1,11926 @@
+!(function (t) {
+ var e = {};
+ function r(n) {
+ if (e[n]) return e[n].exports;
+ var o = (e[n] = { i: n, l: !1, exports: {} });
+ return t[n].call(o.exports, o, o.exports, r), (o.l = !0), o.exports;
+ }
+ (r.m = t),
+ (r.c = e),
+ (r.d = function (t, e, n) {
+ r.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: n });
+ }),
+ (r.r = function (t) {
+ "undefined" != typeof Symbol &&
+ Symbol.toStringTag &&
+ Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }),
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ }),
+ (r.t = function (t, e) {
+ if ((1 & e && (t = r(t)), 8 & e)) return t;
+ if (4 & e && "object" == typeof t && t && t.__esModule) return t;
+ var n = Object.create(null);
+ if (
+ (r.r(n),
+ Object.defineProperty(n, "default", { enumerable: !0, value: t }),
+ 2 & e && "string" != typeof t)
+ )
+ for (var o in t)
+ r.d(
+ n,
+ o,
+ function (e) {
+ return t[e];
+ }.bind(null, o),
+ );
+ return n;
+ }),
+ (r.n = function (t) {
+ var e =
+ t && t.__esModule
+ ? function () {
+ return t.default;
+ }
+ : function () {
+ return t;
+ };
+ return r.d(e, "a", e), e;
+ }),
+ (r.o = function (t, e) {
+ return Object.prototype.hasOwnProperty.call(t, e);
+ }),
+ (r.p = ""),
+ r((r.s = 78));
+})([
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ },
+ s =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ },
+ a =
+ (this && this.__read) ||
+ function (t, e) {
+ var r = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!r) return t;
+ var n,
+ o,
+ i = r.call(t),
+ s = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(n = i.next()).done; )
+ s.push(n.value);
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ n && !n.done && (r = i.return) && r.call(i);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ return s;
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.XMLNode =
+ e.TextNode =
+ e.AbstractMmlEmptyNode =
+ e.AbstractMmlBaseNode =
+ e.AbstractMmlLayoutNode =
+ e.AbstractMmlTokenNode =
+ e.AbstractMmlNode =
+ e.indentAttributes =
+ e.TEXCLASSNAMES =
+ e.TEXCLASS =
+ void 0);
+ var l = r(2),
+ u = r(11);
+ (e.TEXCLASS = {
+ ORD: 0,
+ OP: 1,
+ BIN: 2,
+ REL: 3,
+ OPEN: 4,
+ CLOSE: 5,
+ PUNCT: 6,
+ INNER: 7,
+ VCENTER: 8,
+ NONE: -1,
+ }),
+ (e.TEXCLASSNAMES = [
+ "ORD",
+ "OP",
+ "BIN",
+ "REL",
+ "OPEN",
+ "CLOSE",
+ "PUNCT",
+ "INNER",
+ "VCENTER",
+ ]);
+ var c = ["", "thinmathspace", "mediummathspace", "thickmathspace"],
+ p = [
+ [0, -1, 2, 3, 0, 0, 0, 1],
+ [-1, -1, 0, 3, 0, 0, 0, 1],
+ [2, 2, 0, 0, 2, 0, 0, 2],
+ [3, 3, 0, 0, 3, 0, 0, 3],
+ [0, 0, 0, 0, 0, 0, 0, 0],
+ [0, -1, 2, 3, 0, 0, 0, 1],
+ [1, 1, 0, 1, 1, 1, 1, 1],
+ [1, -1, 2, 3, 1, 0, 1, 1],
+ ];
+ e.indentAttributes = [
+ "indentalign",
+ "indentalignfirst",
+ "indentshift",
+ "indentshiftfirst",
+ ];
+ var f = (function (t) {
+ function r(e, r, n) {
+ void 0 === r && (r = {}), void 0 === n && (n = []);
+ var o = t.call(this, e) || this;
+ return (
+ (o.texClass = null),
+ (o.prevClass = null),
+ (o.prevLevel = null),
+ o.arity < 0 &&
+ ((o.childNodes = [e.create("inferredMrow")]),
+ (o.childNodes[0].parent = o)),
+ o.setChildren(n),
+ (o.attributes = new l.Attributes(
+ e.getNodeClass(o.kind).defaults,
+ e.getNodeClass("math").defaults,
+ )),
+ o.attributes.setList(r),
+ o
+ );
+ }
+ return (
+ o(r, t),
+ Object.defineProperty(r.prototype, "isToken", {
+ get: function () {
+ return !1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(r.prototype, "isEmbellished", {
+ get: function () {
+ return !1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(r.prototype, "isSpacelike", {
+ get: function () {
+ return !1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(r.prototype, "linebreakContainer", {
+ get: function () {
+ return !1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(r.prototype, "hasNewLine", {
+ get: function () {
+ return !1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(r.prototype, "arity", {
+ get: function () {
+ return 1 / 0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(r.prototype, "isInferred", {
+ get: function () {
+ return !1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(r.prototype, "Parent", {
+ get: function () {
+ for (var t = this.parent; t && t.notParent; ) t = t.Parent;
+ return t;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(r.prototype, "notParent", {
+ get: function () {
+ return !1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (r.prototype.setChildren = function (e) {
+ return this.arity < 0
+ ? this.childNodes[0].setChildren(e)
+ : t.prototype.setChildren.call(this, e);
+ }),
+ (r.prototype.appendChild = function (e) {
+ return this.arity < 0
+ ? (this.childNodes[0].appendChild(e), e)
+ : t.prototype.appendChild.call(this, e);
+ }),
+ (r.prototype.replaceChild = function (e, r) {
+ return this.arity < 0
+ ? (this.childNodes[0].replaceChild(e, r), e)
+ : t.prototype.replaceChild.call(this, e, r);
+ }),
+ (r.prototype.core = function () {
+ return this;
+ }),
+ (r.prototype.coreMO = function () {
+ return this;
+ }),
+ (r.prototype.coreIndex = function () {
+ return 0;
+ }),
+ (r.prototype.childPosition = function () {
+ for (var t, e, r = this, n = r.parent; n && n.notParent; )
+ (r = n), (n = n.parent);
+ if (n) {
+ var o = 0;
+ try {
+ for (
+ var i = s(n.childNodes), a = i.next();
+ !a.done;
+ a = i.next()
+ ) {
+ if (a.value === r) return o;
+ o++;
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ a && !a.done && (e = i.return) && e.call(i);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ }
+ return null;
+ }),
+ (r.prototype.setTeXclass = function (t) {
+ return this.getPrevClass(t), null != this.texClass ? this : t;
+ }),
+ (r.prototype.updateTeXclass = function (t) {
+ t &&
+ ((this.prevClass = t.prevClass),
+ (this.prevLevel = t.prevLevel),
+ (t.prevClass = t.prevLevel = null),
+ (this.texClass = t.texClass));
+ }),
+ (r.prototype.getPrevClass = function (t) {
+ t &&
+ ((this.prevClass = t.texClass),
+ (this.prevLevel = t.attributes.get("scriptlevel")));
+ }),
+ (r.prototype.texSpacing = function () {
+ var t = null != this.prevClass ? this.prevClass : e.TEXCLASS.NONE,
+ r = this.texClass || e.TEXCLASS.ORD;
+ if (t === e.TEXCLASS.NONE || r === e.TEXCLASS.NONE) return "";
+ t === e.TEXCLASS.VCENTER && (t = e.TEXCLASS.ORD),
+ r === e.TEXCLASS.VCENTER && (r = e.TEXCLASS.ORD);
+ var n = p[t][r];
+ return (this.prevLevel > 0 ||
+ this.attributes.get("scriptlevel") > 0) &&
+ n >= 0
+ ? ""
+ : c[Math.abs(n)];
+ }),
+ (r.prototype.hasSpacingAttributes = function () {
+ return this.isEmbellished && this.coreMO().hasSpacingAttributes();
+ }),
+ (r.prototype.setInheritedAttributes = function (t, e, n, o) {
+ var i, l;
+ void 0 === t && (t = {}),
+ void 0 === e && (e = !1),
+ void 0 === n && (n = 0),
+ void 0 === o && (o = !1);
+ var u = this.attributes.getAllDefaults();
+ try {
+ for (
+ var c = s(Object.keys(t)), p = c.next();
+ !p.done;
+ p = c.next()
+ ) {
+ var f = p.value;
+ if (u.hasOwnProperty(f) || r.alwaysInherit.hasOwnProperty(f)) {
+ var h = a(t[f], 2),
+ d = h[0],
+ y = h[1];
+ ((r.noInherit[d] || {})[this.kind] || {})[f] ||
+ this.attributes.setInherited(f, y);
+ }
+ }
+ } catch (t) {
+ i = { error: t };
+ } finally {
+ try {
+ p && !p.done && (l = c.return) && l.call(c);
+ } finally {
+ if (i) throw i.error;
+ }
+ }
+ void 0 === this.attributes.getExplicit("displaystyle") &&
+ this.attributes.setInherited("displaystyle", e),
+ void 0 === this.attributes.getExplicit("scriptlevel") &&
+ this.attributes.setInherited("scriptlevel", n),
+ o && this.setProperty("texprimestyle", o);
+ var O = this.arity;
+ if (
+ O >= 0 &&
+ O !== 1 / 0 &&
+ ((1 === O && 0 === this.childNodes.length) ||
+ (1 !== O && this.childNodes.length !== O))
+ )
+ if (O < this.childNodes.length)
+ this.childNodes = this.childNodes.slice(0, O);
+ else
+ for (; this.childNodes.length < O; )
+ this.appendChild(this.factory.create("mrow"));
+ this.setChildInheritedAttributes(t, e, n, o);
+ }),
+ (r.prototype.setChildInheritedAttributes = function (t, e, r, n) {
+ var o, i;
+ try {
+ for (
+ var a = s(this.childNodes), l = a.next();
+ !l.done;
+ l = a.next()
+ ) {
+ l.value.setInheritedAttributes(t, e, r, n);
+ }
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ l && !l.done && (i = a.return) && i.call(a);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ }),
+ (r.prototype.addInheritedAttributes = function (t, e) {
+ var r,
+ n,
+ o = i({}, t);
+ try {
+ for (
+ var a = s(Object.keys(e)), l = a.next();
+ !l.done;
+ l = a.next()
+ ) {
+ var u = l.value;
+ "displaystyle" !== u &&
+ "scriptlevel" !== u &&
+ "style" !== u &&
+ (o[u] = [this.kind, e[u]]);
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ l && !l.done && (n = a.return) && n.call(a);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ return o;
+ }),
+ (r.prototype.inheritAttributesFrom = function (t) {
+ var e = t.attributes,
+ r = e.get("displaystyle"),
+ n = e.get("scriptlevel"),
+ o = e.isSet("mathsize")
+ ? { mathsize: ["math", e.get("mathsize")] }
+ : {},
+ i = t.getProperty("texprimestyle") || !1;
+ this.setInheritedAttributes(o, r, n, i);
+ }),
+ (r.prototype.verifyTree = function (t) {
+ if ((void 0 === t && (t = null), null !== t)) {
+ this.verifyAttributes(t);
+ var e = this.arity;
+ t.checkArity &&
+ e >= 0 &&
+ e !== 1 / 0 &&
+ ((1 === e && 0 === this.childNodes.length) ||
+ (1 !== e && this.childNodes.length !== e)) &&
+ this.mError(
+ 'Wrong number of children for "' + this.kind + '" node',
+ t,
+ !0,
+ ),
+ this.verifyChildren(t);
+ }
+ }),
+ (r.prototype.verifyAttributes = function (t) {
+ var e, r;
+ if (t.checkAttributes) {
+ var n = this.attributes,
+ o = [];
+ try {
+ for (
+ var i = s(n.getExplicitNames()), a = i.next();
+ !a.done;
+ a = i.next()
+ ) {
+ var l = a.value;
+ "data-" === l.substr(0, 5) ||
+ void 0 !== n.getDefault(l) ||
+ l.match(/^(?:class|style|id|(?:xlink:)?href)$/) ||
+ o.push(l);
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ a && !a.done && (r = i.return) && r.call(i);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ o.length &&
+ this.mError(
+ "Unknown attributes for " +
+ this.kind +
+ " node: " +
+ o.join(", "),
+ t,
+ );
+ }
+ }),
+ (r.prototype.verifyChildren = function (t) {
+ var e, r;
+ try {
+ for (
+ var n = s(this.childNodes), o = n.next();
+ !o.done;
+ o = n.next()
+ ) {
+ o.value.verifyTree(t);
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ o && !o.done && (r = n.return) && r.call(n);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ }),
+ (r.prototype.mError = function (t, e, r) {
+ if (
+ (void 0 === r && (r = !1),
+ this.parent && this.parent.isKind("merror"))
+ )
+ return null;
+ var n = this.factory.create("merror");
+ if (e.fullErrors || r) {
+ var o = this.factory.create("mtext"),
+ i = this.factory.create("text");
+ i.setText(e.fullErrors ? t : this.kind),
+ o.appendChild(i),
+ n.appendChild(o),
+ this.parent.replaceChild(n, this);
+ } else this.parent.replaceChild(n, this), n.appendChild(this);
+ return n;
+ }),
+ (r.defaults = {
+ mathbackground: l.INHERIT,
+ mathcolor: l.INHERIT,
+ mathsize: l.INHERIT,
+ dir: l.INHERIT,
+ }),
+ (r.noInherit = {
+ mstyle: {
+ mpadded: {
+ width: !0,
+ height: !0,
+ depth: !0,
+ lspace: !0,
+ voffset: !0,
+ },
+ mtable: { width: !0, height: !0, depth: !0, align: !0 },
+ },
+ maligngroup: { mrow: { groupalign: !0 }, mtable: { groupalign: !0 } },
+ }),
+ (r.alwaysInherit = { scriptminsize: !0, scriptsizemultiplier: !0 }),
+ (r.verifyDefaults = {
+ checkArity: !0,
+ checkAttributes: !1,
+ fullErrors: !1,
+ fixMmultiscripts: !0,
+ fixMtables: !0,
+ }),
+ r
+ );
+ })(u.AbstractNode);
+ e.AbstractMmlNode = f;
+ var h = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "isToken", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.getText = function () {
+ var t,
+ e,
+ r = "";
+ try {
+ for (
+ var n = s(this.childNodes), o = n.next();
+ !o.done;
+ o = n.next()
+ ) {
+ var i = o.value;
+ i instanceof M && (r += i.getText());
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ o && !o.done && (e = n.return) && e.call(n);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ return r;
+ }),
+ (e.prototype.setChildInheritedAttributes = function (t, e, r, n) {
+ var o, i;
+ try {
+ for (
+ var a = s(this.childNodes), l = a.next();
+ !l.done;
+ l = a.next()
+ ) {
+ var u = l.value;
+ u instanceof f && u.setInheritedAttributes(t, e, r, n);
+ }
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ l && !l.done && (i = a.return) && i.call(a);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ }),
+ (e.prototype.walkTree = function (t, e) {
+ var r, n;
+ t(this, e);
+ try {
+ for (
+ var o = s(this.childNodes), i = o.next();
+ !i.done;
+ i = o.next()
+ ) {
+ var a = i.value;
+ a instanceof f && a.walkTree(t, e);
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ i && !i.done && (n = o.return) && n.call(o);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ return e;
+ }),
+ (e.defaults = i(i({}, f.defaults), {
+ mathvariant: "normal",
+ mathsize: l.INHERIT,
+ })),
+ e
+ );
+ })(f);
+ e.AbstractMmlTokenNode = h;
+ var d = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "isSpacelike", {
+ get: function () {
+ return this.childNodes[0].isSpacelike;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "isEmbellished", {
+ get: function () {
+ return this.childNodes[0].isEmbellished;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return -1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.core = function () {
+ return this.childNodes[0];
+ }),
+ (e.prototype.coreMO = function () {
+ return this.childNodes[0].coreMO();
+ }),
+ (e.prototype.setTeXclass = function (t) {
+ return (
+ (t = this.childNodes[0].setTeXclass(t)),
+ this.updateTeXclass(this.childNodes[0]),
+ t
+ );
+ }),
+ (e.defaults = f.defaults),
+ e
+ );
+ })(f);
+ e.AbstractMmlLayoutNode = d;
+ var y = (function (t) {
+ function r() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(r, t),
+ Object.defineProperty(r.prototype, "isEmbellished", {
+ get: function () {
+ return this.childNodes[0].isEmbellished;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (r.prototype.core = function () {
+ return this.childNodes[0];
+ }),
+ (r.prototype.coreMO = function () {
+ return this.childNodes[0].coreMO();
+ }),
+ (r.prototype.setTeXclass = function (t) {
+ var r, n;
+ this.getPrevClass(t), (this.texClass = e.TEXCLASS.ORD);
+ var o = this.childNodes[0];
+ o
+ ? this.isEmbellished || o.isKind("mi")
+ ? ((t = o.setTeXclass(t)), this.updateTeXclass(this.core()))
+ : (o.setTeXclass(null), (t = this))
+ : (t = this);
+ try {
+ for (
+ var i = s(this.childNodes.slice(1)), a = i.next();
+ !a.done;
+ a = i.next()
+ ) {
+ var l = a.value;
+ l && l.setTeXclass(null);
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ a && !a.done && (n = i.return) && n.call(i);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ return t;
+ }),
+ (r.defaults = f.defaults),
+ r
+ );
+ })(f);
+ e.AbstractMmlBaseNode = y;
+ var O = (function (t) {
+ function r() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(r, t),
+ Object.defineProperty(r.prototype, "isToken", {
+ get: function () {
+ return !1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(r.prototype, "isEmbellished", {
+ get: function () {
+ return !1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(r.prototype, "isSpacelike", {
+ get: function () {
+ return !1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(r.prototype, "linebreakContainer", {
+ get: function () {
+ return !1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(r.prototype, "hasNewLine", {
+ get: function () {
+ return !1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(r.prototype, "arity", {
+ get: function () {
+ return 0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(r.prototype, "isInferred", {
+ get: function () {
+ return !1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(r.prototype, "notParent", {
+ get: function () {
+ return !1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(r.prototype, "Parent", {
+ get: function () {
+ return this.parent;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(r.prototype, "texClass", {
+ get: function () {
+ return e.TEXCLASS.NONE;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(r.prototype, "prevClass", {
+ get: function () {
+ return e.TEXCLASS.NONE;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(r.prototype, "prevLevel", {
+ get: function () {
+ return 0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (r.prototype.hasSpacingAttributes = function () {
+ return !1;
+ }),
+ Object.defineProperty(r.prototype, "attributes", {
+ get: function () {
+ return null;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (r.prototype.core = function () {
+ return this;
+ }),
+ (r.prototype.coreMO = function () {
+ return this;
+ }),
+ (r.prototype.coreIndex = function () {
+ return 0;
+ }),
+ (r.prototype.childPosition = function () {
+ return 0;
+ }),
+ (r.prototype.setTeXclass = function (t) {
+ return t;
+ }),
+ (r.prototype.texSpacing = function () {
+ return "";
+ }),
+ (r.prototype.setInheritedAttributes = function (t, e, r, n) {}),
+ (r.prototype.inheritAttributesFrom = function (t) {}),
+ (r.prototype.verifyTree = function (t) {}),
+ (r.prototype.mError = function (t, e, r) {
+ void 0 === r && (r = !1);
+ }),
+ r
+ );
+ })(u.AbstractEmptyNode);
+ e.AbstractMmlEmptyNode = O;
+ var M = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (e.text = ""), e;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "text";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.getText = function () {
+ return this.text;
+ }),
+ (e.prototype.setText = function (t) {
+ return (this.text = t), this;
+ }),
+ (e.prototype.toString = function () {
+ return this.text;
+ }),
+ e
+ );
+ })(O);
+ e.TextNode = M;
+ var E = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (e.xml = null), (e.adaptor = null), e;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "XML";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.getXML = function () {
+ return this.xml;
+ }),
+ (e.prototype.setXML = function (t, e) {
+ return (
+ void 0 === e && (e = null), (this.xml = t), (this.adaptor = e), this
+ );
+ }),
+ (e.prototype.getSerializedXML = function () {
+ return this.adaptor.outerHTML(this.xml);
+ }),
+ (e.prototype.toString = function () {
+ return "XML data";
+ }),
+ e
+ );
+ })(O);
+ e.XMLNode = E;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ },
+ o =
+ (this && this.__read) ||
+ function (t, e) {
+ var r = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!r) return t;
+ var n,
+ o,
+ i = r.call(t),
+ s = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(n = i.next()).done; )
+ s.push(n.value);
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ n && !n.done && (r = i.return) && r.call(i);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ return s;
+ },
+ i =
+ (this && this.__spread) ||
+ function () {
+ for (var t = [], e = 0; e < arguments.length; e++)
+ t = t.concat(o(arguments[e]));
+ return t;
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.separateOptions =
+ e.selectOptionsFromKeys =
+ e.selectOptions =
+ e.userOptions =
+ e.defaultOptions =
+ e.insert =
+ e.copy =
+ e.keys =
+ e.makeArray =
+ e.expandable =
+ e.Expandable =
+ e.REMOVE =
+ e.APPEND =
+ void 0);
+ var s = {}.constructor;
+ function a(t) {
+ return (
+ "object" == typeof t &&
+ null !== t &&
+ (t.constructor === s || t.constructor === l)
+ );
+ }
+ (e.APPEND = "[+]"), (e.REMOVE = "[-]");
+ var l = function () {};
+ function u(t) {
+ return Object.assign(Object.create(l.prototype), t);
+ }
+ function c(t) {
+ return t ? Object.keys(t).concat(Object.getOwnPropertySymbols(t)) : [];
+ }
+ function p(t) {
+ var e,
+ r,
+ o = {};
+ try {
+ for (var i = n(c(t)), s = i.next(); !s.done; s = i.next()) {
+ var h = s.value,
+ d = Object.getOwnPropertyDescriptor(t, h),
+ y = d.value;
+ Array.isArray(y)
+ ? (d.value = f([], y, !1))
+ : a(y) && (d.value = p(y)),
+ d.enumerable && (o[h] = d);
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ s && !s.done && (r = i.return) && r.call(i);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ return Object.defineProperties(t.constructor === l ? u({}) : {}, o);
+ }
+ function f(t, r, o) {
+ var s, u;
+ void 0 === o && (o = !0);
+ var h = function (n) {
+ if (o && void 0 === t[n] && t.constructor !== l)
+ throw (
+ ("symbol" == typeof n && (n = n.toString()),
+ new Error('Invalid option "' + n + '" (no default value).'))
+ );
+ var s = r[n],
+ u = t[n];
+ if (
+ !a(s) ||
+ null === u ||
+ ("object" != typeof u && "function" != typeof u)
+ )
+ Array.isArray(s)
+ ? ((t[n] = []), f(t[n], s, !1))
+ : a(s)
+ ? (t[n] = p(s))
+ : (t[n] = s);
+ else {
+ var h = c(s);
+ Array.isArray(u) &&
+ ((1 === h.length &&
+ (h[0] === e.APPEND || h[0] === e.REMOVE) &&
+ Array.isArray(s[h[0]])) ||
+ (2 === h.length &&
+ h.sort().join(",") === e.APPEND + "," + e.REMOVE &&
+ Array.isArray(s[e.APPEND]) &&
+ Array.isArray(s[e.REMOVE])))
+ ? (s[e.REMOVE] &&
+ (u = t[n] =
+ u.filter(function (t) {
+ return s[e.REMOVE].indexOf(t) < 0;
+ })),
+ s[e.APPEND] && (t[n] = i(u, s[e.APPEND])))
+ : f(u, s, o);
+ }
+ };
+ try {
+ for (var d = n(c(r)), y = d.next(); !y.done; y = d.next()) {
+ h(y.value);
+ }
+ } catch (t) {
+ s = { error: t };
+ } finally {
+ try {
+ y && !y.done && (u = d.return) && u.call(d);
+ } finally {
+ if (s) throw s.error;
+ }
+ }
+ return t;
+ }
+ function h(t) {
+ for (var e, r, o = [], i = 1; i < arguments.length; i++)
+ o[i - 1] = arguments[i];
+ var s = {};
+ try {
+ for (var a = n(o), l = a.next(); !l.done; l = a.next()) {
+ var u = l.value;
+ t.hasOwnProperty(u) && (s[u] = t[u]);
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ l && !l.done && (r = a.return) && r.call(a);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ return s;
+ }
+ (e.Expandable = l),
+ (e.expandable = u),
+ (e.makeArray = function (t) {
+ return Array.isArray(t) ? t : [t];
+ }),
+ (e.keys = c),
+ (e.copy = p),
+ (e.insert = f),
+ (e.defaultOptions = function (t) {
+ for (var e = [], r = 1; r < arguments.length; r++)
+ e[r - 1] = arguments[r];
+ return (
+ e.forEach(function (e) {
+ return f(t, e, !1);
+ }),
+ t
+ );
+ }),
+ (e.userOptions = function (t) {
+ for (var e = [], r = 1; r < arguments.length; r++)
+ e[r - 1] = arguments[r];
+ return (
+ e.forEach(function (e) {
+ return f(t, e, !0);
+ }),
+ t
+ );
+ }),
+ (e.selectOptions = h),
+ (e.selectOptionsFromKeys = function (t, e) {
+ return h.apply(void 0, i([t], Object.keys(e)));
+ }),
+ (e.separateOptions = function (t) {
+ for (var e, r, o, i, s = [], a = 1; a < arguments.length; a++)
+ s[a - 1] = arguments[a];
+ var l = [];
+ try {
+ for (var u = n(s), c = u.next(); !c.done; c = u.next()) {
+ var p = c.value,
+ f = {},
+ h = {};
+ try {
+ for (
+ var d = ((o = void 0), n(Object.keys(t || {}))), y = d.next();
+ !y.done;
+ y = d.next()
+ ) {
+ var O = y.value;
+ (void 0 === p[O] ? h : f)[O] = t[O];
+ }
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ y && !y.done && (i = d.return) && i.call(d);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ l.push(f), (t = h);
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ c && !c.done && (r = u.return) && r.call(u);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ return l.unshift(t), l;
+ });
+ },
+ function (t, e, r) {
+ "use strict";
+ var n =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.Attributes = e.INHERIT = void 0),
+ (e.INHERIT = "_inherit_");
+ var o = (function () {
+ function t(t, e) {
+ (this.global = e),
+ (this.defaults = Object.create(e)),
+ (this.inherited = Object.create(this.defaults)),
+ (this.attributes = Object.create(this.inherited)),
+ Object.assign(this.defaults, t);
+ }
+ return (
+ (t.prototype.set = function (t, e) {
+ this.attributes[t] = e;
+ }),
+ (t.prototype.setList = function (t) {
+ Object.assign(this.attributes, t);
+ }),
+ (t.prototype.get = function (t) {
+ var r = this.attributes[t];
+ return r === e.INHERIT && (r = this.global[t]), r;
+ }),
+ (t.prototype.getExplicit = function (t) {
+ if (this.attributes.hasOwnProperty(t)) return this.attributes[t];
+ }),
+ (t.prototype.getList = function () {
+ for (var t, e, r = [], o = 0; o < arguments.length; o++)
+ r[o] = arguments[o];
+ var i = {};
+ try {
+ for (var s = n(r), a = s.next(); !a.done; a = s.next()) {
+ var l = a.value;
+ i[l] = this.get(l);
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ a && !a.done && (e = s.return) && e.call(s);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ return i;
+ }),
+ (t.prototype.setInherited = function (t, e) {
+ this.inherited[t] = e;
+ }),
+ (t.prototype.getInherited = function (t) {
+ return this.inherited[t];
+ }),
+ (t.prototype.getDefault = function (t) {
+ return this.defaults[t];
+ }),
+ (t.prototype.isSet = function (t) {
+ return (
+ this.attributes.hasOwnProperty(t) ||
+ this.inherited.hasOwnProperty(t)
+ );
+ }),
+ (t.prototype.hasDefault = function (t) {
+ return t in this.defaults;
+ }),
+ (t.prototype.getExplicitNames = function () {
+ return Object.keys(this.attributes);
+ }),
+ (t.prototype.getInheritedNames = function () {
+ return Object.keys(this.inherited);
+ }),
+ (t.prototype.getDefaultNames = function () {
+ return Object.keys(this.defaults);
+ }),
+ (t.prototype.getGlobalNames = function () {
+ return Object.keys(this.global);
+ }),
+ (t.prototype.getAllAttributes = function () {
+ return this.attributes;
+ }),
+ (t.prototype.getAllInherited = function () {
+ return this.inherited;
+ }),
+ (t.prototype.getAllDefaults = function () {
+ return this.defaults;
+ }),
+ (t.prototype.getAllGlobals = function () {
+ return this.global;
+ }),
+ t
+ );
+ })();
+ e.Attributes = o;
+ },
+ function (t, e, r) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.PrioritizedList = void 0);
+ var n = (function () {
+ function t() {
+ (this.items = []), (this.items = []);
+ }
+ return (
+ (t.prototype[Symbol.iterator] = function () {
+ var t = 0,
+ e = this.items;
+ return {
+ next: function () {
+ return { value: e[t++], done: t > e.length };
+ },
+ };
+ }),
+ (t.prototype.add = function (e, r) {
+ void 0 === r && (r = t.DEFAULTPRIORITY);
+ var n = this.items.length;
+ do {
+ n--;
+ } while (n >= 0 && r < this.items[n].priority);
+ return this.items.splice(n + 1, 0, { item: e, priority: r }), e;
+ }),
+ (t.prototype.remove = function (t) {
+ var e = this.items.length;
+ do {
+ e--;
+ } while (e >= 0 && this.items[e].item !== t);
+ e >= 0 && this.items.splice(e, 1);
+ }),
+ (t.prototype.toArray = function () {
+ return Array.from(this);
+ }),
+ (t.DEFAULTPRIORITY = 5),
+ t
+ );
+ })();
+ e.PrioritizedList = n;
+ },
+ function (t, e, r) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.newState = e.STATE = e.AbstractMathItem = e.protoItem = void 0),
+ (e.protoItem = function (t, e, r, n, o, i, s) {
+ return (
+ void 0 === s && (s = null),
+ {
+ open: t,
+ math: e,
+ close: r,
+ n: n,
+ start: { n: o },
+ end: { n: i },
+ display: s,
+ }
+ );
+ });
+ var n = (function () {
+ function t(t, r, n, o, i) {
+ void 0 === n && (n = !0),
+ void 0 === o && (o = { i: 0, n: 0, delim: "" }),
+ void 0 === i && (i = { i: 0, n: 0, delim: "" }),
+ (this.root = null),
+ (this.typesetRoot = null),
+ (this.metrics = {}),
+ (this.inputData = {}),
+ (this.outputData = {}),
+ (this._state = e.STATE.UNPROCESSED),
+ (this.math = t),
+ (this.inputJax = r),
+ (this.display = n),
+ (this.start = o),
+ (this.end = i),
+ (this.root = null),
+ (this.typesetRoot = null),
+ (this.metrics = {}),
+ (this.inputData = {}),
+ (this.outputData = {});
+ }
+ return (
+ Object.defineProperty(t.prototype, "isEscaped", {
+ get: function () {
+ return null === this.display;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (t.prototype.render = function (t) {
+ t.renderActions.renderMath(this, t);
+ }),
+ (t.prototype.rerender = function (t, r) {
+ void 0 === r && (r = e.STATE.RERENDER),
+ this.state() >= r && this.state(r - 1),
+ t.renderActions.renderMath(this, t, r);
+ }),
+ (t.prototype.convert = function (t, r) {
+ void 0 === r && (r = e.STATE.LAST),
+ t.renderActions.renderConvert(this, t, r);
+ }),
+ (t.prototype.compile = function (t) {
+ this.state() < e.STATE.COMPILED &&
+ ((this.root = this.inputJax.compile(this, t)),
+ this.state(e.STATE.COMPILED));
+ }),
+ (t.prototype.typeset = function (t) {
+ this.state() < e.STATE.TYPESET &&
+ ((this.typesetRoot = t.outputJax[
+ this.isEscaped ? "escaped" : "typeset"
+ ](this, t)),
+ this.state(e.STATE.TYPESET));
+ }),
+ (t.prototype.updateDocument = function (t) {}),
+ (t.prototype.removeFromDocument = function (t) {
+ void 0 === t && (t = !1);
+ }),
+ (t.prototype.setMetrics = function (t, e, r, n, o) {
+ this.metrics = {
+ em: t,
+ ex: e,
+ containerWidth: r,
+ lineWidth: n,
+ scale: o,
+ };
+ }),
+ (t.prototype.state = function (t, r) {
+ return (
+ void 0 === t && (t = null),
+ void 0 === r && (r = !1),
+ null != t &&
+ (t < e.STATE.INSERTED &&
+ this._state >= e.STATE.INSERTED &&
+ this.removeFromDocument(r),
+ t < e.STATE.TYPESET &&
+ this._state >= e.STATE.TYPESET &&
+ (this.outputData = {}),
+ t < e.STATE.COMPILED &&
+ this._state >= e.STATE.COMPILED &&
+ (this.inputData = {}),
+ (this._state = t)),
+ this._state
+ );
+ }),
+ (t.prototype.reset = function (t) {
+ void 0 === t && (t = !1), this.state(e.STATE.UNPROCESSED, t);
+ }),
+ t
+ );
+ })();
+ (e.AbstractMathItem = n),
+ (e.STATE = {
+ UNPROCESSED: 0,
+ FINDMATH: 10,
+ COMPILED: 20,
+ CONVERT: 100,
+ METRICS: 110,
+ RERENDER: 125,
+ TYPESET: 150,
+ INSERTED: 200,
+ LAST: 1e4,
+ }),
+ (e.newState = function (t, r) {
+ if (t in e.STATE) throw Error("State " + t + " already exists");
+ e.STATE[t] = r;
+ });
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ });
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.HTMLHandler = void 0);
+ var i = r(23),
+ s = r(60),
+ a = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (e.documentClass = s.HTMLDocument), e;
+ }
+ return (
+ o(e, t),
+ (e.prototype.handlesDocument = function (t) {
+ var e = this.adaptor;
+ if ("string" == typeof t)
+ try {
+ t = e.parse(t, "text/html");
+ } catch (t) {}
+ return (
+ t instanceof e.window.Document ||
+ t instanceof e.window.HTMLElement ||
+ t instanceof e.window.DocumentFragment
+ );
+ }),
+ (e.prototype.create = function (e, r) {
+ var n = this.adaptor;
+ if ("string" == typeof e) e = n.parse(e, "text/html");
+ else if (
+ e instanceof n.window.HTMLElement ||
+ e instanceof n.window.DocumentFragment
+ ) {
+ var o = e;
+ (e = n.parse("", "text/html")), n.append(n.body(e), o);
+ }
+ return t.prototype.create.call(this, e, r);
+ }),
+ e
+ );
+ })(i.AbstractHandler);
+ e.HTMLHandler = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ },
+ s =
+ (this && this.__read) ||
+ function (t, e) {
+ var r = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!r) return t;
+ var n,
+ o,
+ i = r.call(t),
+ s = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(n = i.next()).done; )
+ s.push(n.value);
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ n && !n.done && (r = i.return) && r.call(i);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ return s;
+ },
+ a =
+ (this && this.__spread) ||
+ function () {
+ for (var t = [], e = 0; e < arguments.length; e++)
+ t = t.concat(s(arguments[e]));
+ return t;
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.AbstractMathDocument = e.RenderList = void 0);
+ var l = r(1),
+ u = r(24),
+ c = r(25),
+ p = r(8),
+ f = r(4),
+ h = r(9),
+ d = r(57),
+ y = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ (e.create = function (t) {
+ var e,
+ r,
+ n = new this();
+ try {
+ for (
+ var o = i(Object.keys(t)), a = o.next();
+ !a.done;
+ a = o.next()
+ ) {
+ var l = a.value,
+ u = s(this.action(l, t[l]), 2),
+ c = u[0],
+ p = u[1];
+ p && n.add(c, p);
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ a && !a.done && (r = o.return) && r.call(o);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ return n;
+ }),
+ (e.action = function (t, e) {
+ var r,
+ n,
+ o,
+ i,
+ a,
+ l,
+ u = !0,
+ c = e[0];
+ if (1 === e.length || "boolean" == typeof e[1])
+ 2 === e.length && (u = e[1]),
+ (a = (r = s(this.methodActions(t), 2))[0]),
+ (l = r[1]);
+ else if ("string" == typeof e[1])
+ if ("string" == typeof e[2]) {
+ 4 === e.length && (u = e[3]);
+ var p = s(e.slice(1), 2),
+ f = p[0],
+ h = p[1];
+ (a = (n = s(this.methodActions(f, h), 2))[0]), (l = n[1]);
+ } else
+ 3 === e.length && (u = e[2]),
+ (a = (o = s(this.methodActions(e[1]), 2))[0]),
+ (l = o[1]);
+ else
+ 4 === e.length && (u = e[3]),
+ (a = (i = s(e.slice(1), 2))[0]),
+ (l = i[1]);
+ return [{ id: t, renderDoc: a, renderMath: l, convert: u }, c];
+ }),
+ (e.methodActions = function (t, e) {
+ return (
+ void 0 === e && (e = t),
+ [
+ function (e) {
+ return t && e[t](), !1;
+ },
+ function (t, r) {
+ return e && t[e](r), !1;
+ },
+ ]
+ );
+ }),
+ (e.prototype.renderDoc = function (t, e) {
+ var r, n;
+ void 0 === e && (e = f.STATE.UNPROCESSED);
+ try {
+ for (var o = i(this.items), s = o.next(); !s.done; s = o.next()) {
+ var a = s.value;
+ if (a.priority >= e && a.item.renderDoc(t)) return;
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ s && !s.done && (n = o.return) && n.call(o);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ }),
+ (e.prototype.renderMath = function (t, e, r) {
+ var n, o;
+ void 0 === r && (r = f.STATE.UNPROCESSED);
+ try {
+ for (var s = i(this.items), a = s.next(); !a.done; a = s.next()) {
+ var l = a.value;
+ if (l.priority >= r && l.item.renderMath(t, e)) return;
+ }
+ } catch (t) {
+ n = { error: t };
+ } finally {
+ try {
+ a && !a.done && (o = s.return) && o.call(s);
+ } finally {
+ if (n) throw n.error;
+ }
+ }
+ }),
+ (e.prototype.renderConvert = function (t, e, r) {
+ var n, o;
+ void 0 === r && (r = f.STATE.LAST);
+ try {
+ for (var s = i(this.items), a = s.next(); !a.done; a = s.next()) {
+ var l = a.value;
+ if (l.priority > r) return;
+ if (l.item.convert && l.item.renderMath(t, e)) return;
+ }
+ } catch (t) {
+ n = { error: t };
+ } finally {
+ try {
+ a && !a.done && (o = s.return) && o.call(s);
+ } finally {
+ if (n) throw n.error;
+ }
+ }
+ }),
+ (e.prototype.findID = function (t) {
+ var e, r;
+ try {
+ for (var n = i(this.items), o = n.next(); !o.done; o = n.next()) {
+ var s = o.value;
+ if (s.item.id === t) return s.item;
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ o && !o.done && (r = n.return) && r.call(n);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ return null;
+ }),
+ e
+ );
+ })(r(3).PrioritizedList);
+ e.RenderList = y;
+ var O = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ (e.prototype.compile = function (t) {
+ return null;
+ }),
+ e
+ );
+ })(u.AbstractInputJax),
+ M = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ (e.prototype.typeset = function (t, e) {
+ return void 0 === e && (e = null), null;
+ }),
+ (e.prototype.escaped = function (t, e) {
+ return null;
+ }),
+ e
+ );
+ })(c.AbstractOutputJax),
+ E = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return o(e, t), e;
+ })(p.AbstractMathList),
+ v = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return o(e, t), e;
+ })(f.AbstractMathItem),
+ m = (function () {
+ function t(e, r, n) {
+ var o = this,
+ i = this.constructor;
+ (this.document = e),
+ (this.options = l.userOptions(l.defaultOptions({}, i.OPTIONS), n)),
+ (this.math = new (this.options.MathList || E)()),
+ (this.renderActions = y.create(this.options.renderActions)),
+ (this.processed = new t.ProcessBits()),
+ (this.outputJax = this.options.OutputJax || new M());
+ var s = this.options.InputJax || [new O()];
+ Array.isArray(s) || (s = [s]),
+ (this.inputJax = s),
+ (this.adaptor = r),
+ this.outputJax.setAdaptor(r),
+ this.inputJax.map(function (t) {
+ return t.setAdaptor(r);
+ }),
+ (this.mmlFactory = this.options.MmlFactory || new h.MmlFactory()),
+ this.inputJax.map(function (t) {
+ return t.setMmlFactory(o.mmlFactory);
+ }),
+ this.outputJax.initialize(),
+ this.inputJax.map(function (t) {
+ return t.initialize();
+ });
+ }
+ return (
+ Object.defineProperty(t.prototype, "kind", {
+ get: function () {
+ return this.constructor.KIND;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (t.prototype.addRenderAction = function (t) {
+ for (var e = [], r = 1; r < arguments.length; r++)
+ e[r - 1] = arguments[r];
+ var n = s(y.action(t, e), 2),
+ o = n[0],
+ i = n[1];
+ this.renderActions.add(o, i);
+ }),
+ (t.prototype.removeRenderAction = function (t) {
+ var e = this.renderActions.findID(t);
+ e && this.renderActions.remove(e);
+ }),
+ (t.prototype.render = function () {
+ return this.renderActions.renderDoc(this), this;
+ }),
+ (t.prototype.rerender = function (t) {
+ return (
+ void 0 === t && (t = f.STATE.RERENDER),
+ this.state(t - 1),
+ this.render(),
+ this
+ );
+ }),
+ (t.prototype.convert = function (t, e) {
+ void 0 === e && (e = {});
+ var r = l.userOptions(
+ {
+ format: this.inputJax[0].name,
+ display: !0,
+ end: f.STATE.LAST,
+ em: 16,
+ ex: 8,
+ containerWidth: null,
+ lineWidth: 1e6,
+ scale: 1,
+ family: "",
+ },
+ e,
+ ),
+ n = r.format,
+ o = r.display,
+ i = r.end,
+ s = r.ex,
+ a = r.em,
+ u = r.containerWidth,
+ c = r.lineWidth,
+ p = r.scale,
+ h = r.family;
+ null === u && (u = 80 * s);
+ var d = this.inputJax.reduce(function (t, e) {
+ return e.name === n ? e : t;
+ }, null),
+ y = new this.options.MathItem(t, d, o);
+ return (
+ (y.start.node = this.adaptor.body(this.document)),
+ y.setMetrics(a, s, u, c, p),
+ this.outputJax.options.mtextInheritFont &&
+ (y.outputData.mtextFamily = h),
+ this.outputJax.options.merrorInheritFont &&
+ (y.outputData.merrorFamily = h),
+ y.convert(this, i),
+ y.typesetRoot || y.root
+ );
+ }),
+ (t.prototype.findMath = function (t) {
+ return (
+ void 0 === t && (t = null), this.processed.set("findMath"), this
+ );
+ }),
+ (t.prototype.compile = function () {
+ var t, e, r, n;
+ if (!this.processed.isSet("compile")) {
+ var o = [];
+ try {
+ for (
+ var s = i(this.math), a = s.next();
+ !a.done;
+ a = s.next()
+ ) {
+ var l = a.value;
+ this.compileMath(l),
+ void 0 !== l.inputData.recompile && o.push(l);
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ a && !a.done && (e = s.return) && e.call(s);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ try {
+ for (var u = i(o), c = u.next(); !c.done; c = u.next()) {
+ var p = (l = c.value).inputData.recompile;
+ l.state(p.state),
+ (l.inputData.recompile = p),
+ this.compileMath(l);
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ c && !c.done && (n = u.return) && n.call(u);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ this.processed.set("compile");
+ }
+ return this;
+ }),
+ (t.prototype.compileMath = function (t) {
+ try {
+ t.compile(this);
+ } catch (e) {
+ if (e.retry || e.restart) throw e;
+ this.options.compileError(this, t, e), (t.inputData.error = e);
+ }
+ }),
+ (t.prototype.compileError = function (t, e) {
+ (t.root = this.mmlFactory.create("math", null, [
+ this.mmlFactory.create(
+ "merror",
+ { "data-mjx-error": e.message, title: e.message },
+ [
+ this.mmlFactory.create("mtext", null, [
+ this.mmlFactory.create("text").setText("Math input error"),
+ ]),
+ ],
+ ),
+ ])),
+ t.display && t.root.attributes.set("display", "block"),
+ (t.inputData.error = e.message);
+ }),
+ (t.prototype.typeset = function () {
+ var t, e;
+ if (!this.processed.isSet("typeset")) {
+ try {
+ for (
+ var r = i(this.math), n = r.next();
+ !n.done;
+ n = r.next()
+ ) {
+ var o = n.value;
+ try {
+ o.typeset(this);
+ } catch (t) {
+ if (t.retry || t.restart) throw t;
+ this.options.typesetError(this, o, t),
+ (o.outputData.error = t);
+ }
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ n && !n.done && (e = r.return) && e.call(r);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ this.processed.set("typeset");
+ }
+ return this;
+ }),
+ (t.prototype.typesetError = function (t, e) {
+ (t.typesetRoot = this.adaptor.node(
+ "mjx-container",
+ { class: "MathJax mjx-output-error", jax: this.outputJax.name },
+ [
+ this.adaptor.node(
+ "span",
+ {
+ "data-mjx-error": e.message,
+ title: e.message,
+ style: {
+ color: "red",
+ "background-color": "yellow",
+ "line-height": "normal",
+ },
+ },
+ [this.adaptor.text("Math output error")],
+ ),
+ ],
+ )),
+ t.display &&
+ this.adaptor.setAttributes(t.typesetRoot, {
+ style: {
+ display: "block",
+ margin: "1em 0",
+ "text-align": "center",
+ },
+ }),
+ (t.outputData.error = e.message);
+ }),
+ (t.prototype.getMetrics = function () {
+ return (
+ this.processed.isSet("getMetrics") ||
+ (this.outputJax.getMetrics(this),
+ this.processed.set("getMetrics")),
+ this
+ );
+ }),
+ (t.prototype.updateDocument = function () {
+ var t, e;
+ if (!this.processed.isSet("updateDocument")) {
+ try {
+ for (
+ var r = i(this.math.reversed()), n = r.next();
+ !n.done;
+ n = r.next()
+ ) {
+ n.value.updateDocument(this);
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ n && !n.done && (e = r.return) && e.call(r);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ this.processed.set("updateDocument");
+ }
+ return this;
+ }),
+ (t.prototype.removeFromDocument = function (t) {
+ return void 0 === t && (t = !1), this;
+ }),
+ (t.prototype.state = function (t, e) {
+ var r, n;
+ void 0 === e && (e = !1);
+ try {
+ for (var o = i(this.math), s = o.next(); !s.done; s = o.next()) {
+ s.value.state(t, e);
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ s && !s.done && (n = o.return) && n.call(o);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ return (
+ t < f.STATE.INSERTED && this.processed.clear("updateDocument"),
+ t < f.STATE.TYPESET &&
+ (this.processed.clear("typeset"),
+ this.processed.clear("getMetrics")),
+ t < f.STATE.COMPILED && this.processed.clear("compile"),
+ this
+ );
+ }),
+ (t.prototype.reset = function () {
+ return this.processed.reset(), this;
+ }),
+ (t.prototype.clear = function () {
+ return this.reset(), this.math.clear(), this;
+ }),
+ (t.prototype.concat = function (t) {
+ return this.math.merge(t), this;
+ }),
+ (t.prototype.clearMathItemsWithin = function (t) {
+ var e;
+ (e = this.math).remove.apply(e, a(this.getMathItemsWithin(t)));
+ }),
+ (t.prototype.getMathItemsWithin = function (t) {
+ var e, r, n, o;
+ Array.isArray(t) || (t = [t]);
+ var s = this.adaptor,
+ a = [],
+ l = s.getElements(t, this.document);
+ try {
+ t: for (
+ var u = i(this.math), c = u.next();
+ !c.done;
+ c = u.next()
+ ) {
+ var p = c.value;
+ try {
+ for (
+ var f = ((n = void 0), i(l)), h = f.next();
+ !h.done;
+ h = f.next()
+ ) {
+ var d = h.value;
+ if (p.start.node && s.contains(d, p.start.node)) {
+ a.push(p);
+ continue t;
+ }
+ }
+ } catch (t) {
+ n = { error: t };
+ } finally {
+ try {
+ h && !h.done && (o = f.return) && o.call(f);
+ } finally {
+ if (n) throw n.error;
+ }
+ }
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ c && !c.done && (r = u.return) && r.call(u);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ return a;
+ }),
+ (t.KIND = "MathDocument"),
+ (t.OPTIONS = {
+ OutputJax: null,
+ InputJax: null,
+ MmlFactory: null,
+ MathList: E,
+ MathItem: v,
+ compileError: function (t, e, r) {
+ t.compileError(e, r);
+ },
+ typesetError: function (t, e, r) {
+ t.typesetError(e, r);
+ },
+ renderActions: l.expandable({
+ find: [f.STATE.FINDMATH, "findMath", "", !1],
+ compile: [f.STATE.COMPILED],
+ metrics: [f.STATE.METRICS, "getMetrics", "", !1],
+ typeset: [f.STATE.TYPESET],
+ update: [f.STATE.INSERTED, "updateDocument", !1],
+ }),
+ }),
+ (t.ProcessBits = d.BitFieldClass(
+ "findMath",
+ "compile",
+ "getMetrics",
+ "typeset",
+ "updateDocument",
+ )),
+ t
+ );
+ })();
+ e.AbstractMathDocument = m;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ },
+ s =
+ (this && this.__read) ||
+ function (t, e) {
+ var r = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!r) return t;
+ var n,
+ o,
+ i = r.call(t),
+ s = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(n = i.next()).done; )
+ s.push(n.value);
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ n && !n.done && (r = i.return) && r.call(i);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ return s;
+ },
+ a =
+ (this && this.__spread) ||
+ function () {
+ for (var t = [], e = 0; e < arguments.length; e++)
+ t = t.concat(s(arguments[e]));
+ return t;
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.FunctionList = void 0);
+ var l = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ (e.prototype.execute = function () {
+ for (var t, e, r = [], n = 0; n < arguments.length; n++)
+ r[n] = arguments[n];
+ try {
+ for (var o = i(this), s = o.next(); !s.done; s = o.next()) {
+ var l = s.value,
+ u = l.item.apply(l, a(r));
+ if (!1 === u) return !1;
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ s && !s.done && (e = o.return) && e.call(o);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ return !0;
+ }),
+ (e.prototype.asyncExecute = function () {
+ for (var t = [], e = 0; e < arguments.length; e++)
+ t[e] = arguments[e];
+ var r = -1,
+ n = this.items;
+ return new Promise(function (e, o) {
+ !(function i() {
+ for (var s; ++r < n.length; ) {
+ var l = (s = n[r]).item.apply(s, a(t));
+ if (l instanceof Promise)
+ return void l.then(i).catch(function (t) {
+ return o(t);
+ });
+ if (!1 === l) return void e(!1);
+ }
+ e(!0);
+ })();
+ });
+ }),
+ e
+ );
+ })(r(3).PrioritizedList);
+ e.FunctionList = l;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ });
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.AbstractMathList = void 0);
+ var i = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ (e.prototype.isBefore = function (t, e) {
+ return (
+ t.start.i < e.start.i ||
+ (t.start.i === e.start.i && t.start.n < e.start.n)
+ );
+ }),
+ e
+ );
+ })(r(26).LinkedList);
+ e.AbstractMathList = i;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ });
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlFactory = void 0);
+ var i = r(27),
+ s = r(28),
+ a = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "MML", {
+ get: function () {
+ return this.node;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.defaultNodes = s.MML),
+ e
+ );
+ })(i.AbstractNodeFactory);
+ e.MmlFactory = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ },
+ o =
+ (this && this.__read) ||
+ function (t, e) {
+ var r = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!r) return t;
+ var n,
+ o,
+ i = r.call(t),
+ s = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(n = i.next()).done; )
+ s.push(n.value);
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ n && !n.done && (r = i.return) && r.call(i);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ return s;
+ },
+ i =
+ (this && this.__spread) ||
+ function () {
+ for (var t = [], e = 0; e < arguments.length; e++)
+ t = t.concat(o(arguments[e]));
+ return t;
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.AbstractFactory = void 0);
+ var s = (function () {
+ function t(t) {
+ var e, r;
+ void 0 === t && (t = null),
+ (this.defaultKind = "unknown"),
+ (this.nodeMap = new Map()),
+ (this.node = {}),
+ null === t && (t = this.constructor.defaultNodes);
+ try {
+ for (var o = n(Object.keys(t)), i = o.next(); !i.done; i = o.next()) {
+ var s = i.value;
+ this.setNodeClass(s, t[s]);
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ i && !i.done && (r = o.return) && r.call(o);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ }
+ return (
+ (t.prototype.create = function (t) {
+ for (var e = [], r = 1; r < arguments.length; r++)
+ e[r - 1] = arguments[r];
+ return (this.node[t] || this.node[this.defaultKind]).apply(
+ void 0,
+ i(e),
+ );
+ }),
+ (t.prototype.setNodeClass = function (t, e) {
+ this.nodeMap.set(t, e);
+ var r = this,
+ n = this.nodeMap.get(t);
+ this.node[t] = function () {
+ for (var t = [], e = 0; e < arguments.length; e++)
+ t[e] = arguments[e];
+ return new (n.bind.apply(n, i([void 0, r], t)))();
+ };
+ }),
+ (t.prototype.getNodeClass = function (t) {
+ return this.nodeMap.get(t);
+ }),
+ (t.prototype.deleteNodeClass = function (t) {
+ this.nodeMap.delete(t), delete this.node[t];
+ }),
+ (t.prototype.nodeIsKind = function (t, e) {
+ return t instanceof this.getNodeClass(e);
+ }),
+ (t.prototype.getKinds = function () {
+ return Array.from(this.nodeMap.keys());
+ }),
+ (t.defaultNodes = {}),
+ t
+ );
+ })();
+ e.AbstractFactory = s;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.AbstractEmptyNode = e.AbstractNode = void 0);
+ var s = (function () {
+ function t(t, e, r) {
+ var n, o;
+ void 0 === e && (e = {}),
+ void 0 === r && (r = []),
+ (this.parent = null),
+ (this.properties = {}),
+ (this._factory = null),
+ (this.childNodes = []),
+ (this._factory = t);
+ try {
+ for (var s = i(Object.keys(e)), a = s.next(); !a.done; a = s.next()) {
+ var l = a.value;
+ this.setProperty(l, e[l]);
+ }
+ } catch (t) {
+ n = { error: t };
+ } finally {
+ try {
+ a && !a.done && (o = s.return) && o.call(s);
+ } finally {
+ if (n) throw n.error;
+ }
+ }
+ r.length && this.setChildren(r);
+ }
+ return (
+ Object.defineProperty(t.prototype, "factory", {
+ get: function () {
+ return this._factory;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(t.prototype, "kind", {
+ get: function () {
+ return "unknown";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (t.prototype.setProperty = function (t, e) {
+ this.properties[t] = e;
+ }),
+ (t.prototype.getProperty = function (t) {
+ return this.properties[t];
+ }),
+ (t.prototype.getPropertyNames = function () {
+ return Object.keys(this.properties);
+ }),
+ (t.prototype.getAllProperties = function () {
+ return this.properties;
+ }),
+ (t.prototype.removeProperty = function () {
+ for (var t, e, r = [], n = 0; n < arguments.length; n++)
+ r[n] = arguments[n];
+ try {
+ for (var o = i(r), s = o.next(); !s.done; s = o.next()) {
+ var a = s.value;
+ delete this.properties[a];
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ s && !s.done && (e = o.return) && e.call(o);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ }),
+ (t.prototype.isKind = function (t) {
+ return this.factory.nodeIsKind(this, t);
+ }),
+ (t.prototype.setChildren = function (t) {
+ var e, r;
+ this.childNodes = [];
+ try {
+ for (var n = i(t), o = n.next(); !o.done; o = n.next()) {
+ var s = o.value;
+ this.appendChild(s);
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ o && !o.done && (r = n.return) && r.call(n);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ }),
+ (t.prototype.appendChild = function (t) {
+ return this.childNodes.push(t), (t.parent = this), t;
+ }),
+ (t.prototype.replaceChild = function (t, e) {
+ var r = this.childIndex(e);
+ return null !== r && ((this.childNodes[r] = t), (t.parent = this)), t;
+ }),
+ (t.prototype.childIndex = function (t) {
+ var e = this.childNodes.indexOf(t);
+ return -1 === e ? null : e;
+ }),
+ (t.prototype.findNodes = function (t) {
+ var e = [];
+ return (
+ this.walkTree(function (r) {
+ r.isKind(t) && e.push(r);
+ }),
+ e
+ );
+ }),
+ (t.prototype.walkTree = function (t, e) {
+ var r, n;
+ t(this, e);
+ try {
+ for (
+ var o = i(this.childNodes), s = o.next();
+ !s.done;
+ s = o.next()
+ ) {
+ var a = s.value;
+ a && a.walkTree(t, e);
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ s && !s.done && (n = o.return) && n.call(o);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ return e;
+ }),
+ (t.prototype.toString = function () {
+ return this.kind + "(" + this.childNodes.join(",") + ")";
+ }),
+ t
+ );
+ })();
+ e.AbstractNode = s;
+ var a = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ (e.prototype.setChildren = function (t) {}),
+ (e.prototype.appendChild = function (t) {
+ return t;
+ }),
+ (e.prototype.replaceChild = function (t, e) {
+ return e;
+ }),
+ (e.prototype.childIndex = function (t) {
+ return null;
+ }),
+ (e.prototype.walkTree = function (t, e) {
+ return t(this, e), e;
+ }),
+ (e.prototype.toString = function () {
+ return this.kind;
+ }),
+ e
+ );
+ })(s);
+ e.AbstractEmptyNode = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }), (e.MmlMi = void 0);
+ var s = r(0),
+ a = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (e.texClass = s.TEXCLASS.ORD), e;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "mi";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.setInheritedAttributes = function (r, n, o, i) {
+ void 0 === r && (r = {}),
+ void 0 === n && (n = !1),
+ void 0 === o && (o = 0),
+ void 0 === i && (i = !1),
+ t.prototype.setInheritedAttributes.call(this, r, n, o, i),
+ this.getText().match(e.singleCharacter) &&
+ !r.mathvariant &&
+ this.attributes.setInherited("mathvariant", "italic");
+ }),
+ (e.prototype.setTeXclass = function (t) {
+ this.getPrevClass(t);
+ var r = this.getText();
+ return (
+ r.length > 1 &&
+ r.match(e.operatorName) &&
+ this.texClass === s.TEXCLASS.ORD &&
+ ((this.texClass = s.TEXCLASS.OP),
+ this.setProperty("autoOP", !0)),
+ this
+ );
+ }),
+ (e.defaults = i({}, s.AbstractMmlTokenNode.defaults)),
+ (e.operatorName = /^[a-z][a-z0-9]*$/i),
+ (e.singleCharacter = /^[\uD800-\uDBFF]?.$/),
+ e
+ );
+ })(s.AbstractMmlTokenNode);
+ e.MmlMi = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ },
+ s =
+ (this && this.__read) ||
+ function (t, e) {
+ var r = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!r) return t;
+ var n,
+ o,
+ i = r.call(t),
+ s = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(n = i.next()).done; )
+ s.push(n.value);
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ n && !n.done && (r = i.return) && r.call(i);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ return s;
+ },
+ a =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }), (e.MmlMo = void 0);
+ var l = r(0),
+ u = r(31),
+ c = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (
+ (e._texClass = null), (e.lspace = 5 / 18), (e.rspace = 5 / 18), e
+ );
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "texClass", {
+ get: function () {
+ if (null === this._texClass) {
+ var t = this.getText(),
+ e = s(this.handleExplicitForm(this.getForms()), 3),
+ r = e[0],
+ n = e[1],
+ o = e[2],
+ i = this.constructor.OPTABLE,
+ a = i[r][t] || i[n][t] || i[o][t];
+ return a ? a[2] : l.TEXCLASS.REL;
+ }
+ return this._texClass;
+ },
+ set: function (t) {
+ this._texClass = t;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "mo";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "isEmbellished", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "hasNewLine", {
+ get: function () {
+ return "newline" === this.attributes.get("linebreak");
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.coreParent = function () {
+ for (
+ var t = this, e = this, r = this.factory.getNodeClass("math");
+ e && e.isEmbellished && e.coreMO() === this && !(e instanceof r);
+ )
+ (t = e), (e = e.Parent);
+ return t;
+ }),
+ (e.prototype.coreText = function (t) {
+ if (!t) return "";
+ if (t.isEmbellished) return t.coreMO().getText();
+ for (
+ ;
+ (((t.isKind("mrow") ||
+ t.isKind("TeXAtom") ||
+ t.isKind("mstyle") ||
+ t.isKind("mphantom")) &&
+ 1 === t.childNodes.length) ||
+ t.isKind("munderover")) &&
+ t.childNodes[0];
+ )
+ t = t.childNodes[0];
+ return t.isToken ? t.getText() : "";
+ }),
+ (e.prototype.hasSpacingAttributes = function () {
+ return (
+ this.attributes.isSet("lspace") || this.attributes.isSet("rspace")
+ );
+ }),
+ Object.defineProperty(e.prototype, "isAccent", {
+ get: function () {
+ var t = !1,
+ e = this.coreParent().parent;
+ if (e) {
+ var r = e.isKind("mover")
+ ? e.childNodes[e.over].coreMO()
+ ? "accent"
+ : ""
+ : e.isKind("munder")
+ ? e.childNodes[e.under].coreMO()
+ ? "accentunder"
+ : ""
+ : e.isKind("munderover")
+ ? this === e.childNodes[e.over].coreMO()
+ ? "accent"
+ : this === e.childNodes[e.under].coreMO()
+ ? "accentunder"
+ : ""
+ : "";
+ if (r)
+ t =
+ void 0 !== e.attributes.getExplicit(r)
+ ? t
+ : this.attributes.get("accent");
+ }
+ return t;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.setTeXclass = function (t) {
+ var e = this.attributes.getList("form", "fence"),
+ r = e.form,
+ n = e.fence;
+ return void 0 === this.getProperty("texClass") &&
+ (this.attributes.isSet("lspace") ||
+ this.attributes.isSet("rspace"))
+ ? null
+ : (n &&
+ this.texClass === l.TEXCLASS.REL &&
+ ("prefix" === r && (this.texClass = l.TEXCLASS.OPEN),
+ "postfix" === r && (this.texClass = l.TEXCLASS.CLOSE)),
+ "\u2061" === this.getText()
+ ? (t &&
+ ((t.texClass = l.TEXCLASS.OP), t.setProperty("fnOP", !0)),
+ (this.texClass = this.prevClass = l.TEXCLASS.NONE),
+ t)
+ : this.adjustTeXclass(t));
+ }),
+ (e.prototype.adjustTeXclass = function (t) {
+ var e = this.texClass,
+ r = this.prevClass;
+ if (e === l.TEXCLASS.NONE) return t;
+ if (
+ (t
+ ? (!t.getProperty("autoOP") ||
+ (e !== l.TEXCLASS.BIN && e !== l.TEXCLASS.REL) ||
+ (r = t.texClass = l.TEXCLASS.ORD),
+ (r = this.prevClass = t.texClass || l.TEXCLASS.ORD),
+ (this.prevLevel =
+ this.attributes.getInherited("scriptlevel")))
+ : (r = this.prevClass = l.TEXCLASS.NONE),
+ e !== l.TEXCLASS.BIN ||
+ (r !== l.TEXCLASS.NONE &&
+ r !== l.TEXCLASS.BIN &&
+ r !== l.TEXCLASS.OP &&
+ r !== l.TEXCLASS.REL &&
+ r !== l.TEXCLASS.OPEN &&
+ r !== l.TEXCLASS.PUNCT))
+ )
+ if (
+ r !== l.TEXCLASS.BIN ||
+ (e !== l.TEXCLASS.REL &&
+ e !== l.TEXCLASS.CLOSE &&
+ e !== l.TEXCLASS.PUNCT)
+ ) {
+ if (e === l.TEXCLASS.BIN) {
+ for (
+ var n = this, o = this.parent;
+ o &&
+ o.parent &&
+ o.isEmbellished &&
+ (1 === o.childNodes.length ||
+ (!o.isKind("mrow") && o.core() === n));
+ )
+ (n = o), (o = o.parent);
+ o.childNodes[o.childNodes.length - 1] === n &&
+ (this.texClass = l.TEXCLASS.ORD);
+ }
+ } else t.texClass = this.prevClass = l.TEXCLASS.ORD;
+ else this.texClass = l.TEXCLASS.ORD;
+ return this;
+ }),
+ (e.prototype.setInheritedAttributes = function (e, r, n, o) {
+ var i, l;
+ void 0 === e && (e = {}),
+ void 0 === r && (r = !1),
+ void 0 === n && (n = 0),
+ void 0 === o && (o = !1),
+ t.prototype.setInheritedAttributes.call(this, e, r, n, o);
+ var u = this.getText(),
+ c = s(this.handleExplicitForm(this.getForms()), 3),
+ p = c[0],
+ f = c[1],
+ h = c[2];
+ this.attributes.setInherited("form", p);
+ var d = this.constructor.OPTABLE,
+ y = d[p][u] || d[f][u] || d[h][u];
+ if (y) {
+ void 0 === this.getProperty("texClass") && (this.texClass = y[2]);
+ try {
+ for (
+ var O = a(Object.keys(y[3] || {})), M = O.next();
+ !M.done;
+ M = O.next()
+ ) {
+ var E = M.value;
+ this.attributes.setInherited(E, y[3][E]);
+ }
+ } catch (t) {
+ i = { error: t };
+ } finally {
+ try {
+ M && !M.done && (l = O.return) && l.call(O);
+ } finally {
+ if (i) throw i.error;
+ }
+ }
+ (this.lspace = (y[0] + 1) / 18), (this.rspace = (y[1] + 1) / 18);
+ } else {
+ var v = this.getRange(u);
+ if (v) {
+ void 0 === this.getProperty("texClass") &&
+ (this.texClass = v[2]);
+ var m = this.constructor.MMLSPACING[v[2]];
+ (this.lspace = (m[0] + 1) / 18),
+ (this.rspace = (m[1] + 1) / 18);
+ }
+ }
+ }),
+ (e.prototype.getForms = function () {
+ for (
+ var t = this, e = this.parent, r = this.Parent;
+ r && r.isEmbellished;
+ )
+ (t = e), (e = r.parent), (r = r.Parent);
+ if (e && e.isKind("mrow") && 1 !== e.nonSpaceLength()) {
+ if (e.firstNonSpace() === t)
+ return ["prefix", "infix", "postfix"];
+ if (e.lastNonSpace() === t) return ["postfix", "infix", "prefix"];
+ }
+ return ["infix", "prefix", "postfix"];
+ }),
+ (e.prototype.handleExplicitForm = function (t) {
+ if (this.attributes.isSet("form")) {
+ var e = this.attributes.get("form");
+ t = [e].concat(
+ t.filter(function (t) {
+ return t !== e;
+ }),
+ );
+ }
+ return t;
+ }),
+ (e.prototype.getRange = function (t) {
+ var e, r;
+ if (!t.match(/^[\uD800-\uDBFF]?.$/)) return null;
+ var n = t.codePointAt(0),
+ o = this.constructor.RANGES;
+ try {
+ for (var i = a(o), s = i.next(); !s.done; s = i.next()) {
+ var l = s.value;
+ if (l[0] <= n && n <= l[1]) return l;
+ if (n < l[0]) return null;
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ s && !s.done && (r = i.return) && r.call(i);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ return null;
+ }),
+ (e.defaults = i(i({}, l.AbstractMmlTokenNode.defaults), {
+ form: "infix",
+ fence: !1,
+ separator: !1,
+ lspace: "thickmathspace",
+ rspace: "thickmathspace",
+ stretchy: !1,
+ symmetric: !1,
+ maxsize: "infinity",
+ minsize: "0em",
+ largeop: !1,
+ movablelimits: !1,
+ accent: !1,
+ linebreak: "auto",
+ lineleading: "1ex",
+ linebreakstyle: "before",
+ indentalign: "auto",
+ indentshift: "0",
+ indenttarget: "",
+ indentalignfirst: "indentalign",
+ indentshiftfirst: "indentshift",
+ indentalignlast: "indentalign",
+ indentshiftlast: "indentshift",
+ })),
+ (e.RANGES = u.RANGES),
+ (e.MMLSPACING = u.MMLSPACING),
+ (e.OPTABLE = u.OPTABLE),
+ e
+ );
+ })(l.AbstractMmlTokenNode);
+ e.MmlMo = c;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlMsup = e.MmlMsub = e.MmlMsubsup = void 0);
+ var s = r(0),
+ a = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "msubsup";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return 3;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "base", {
+ get: function () {
+ return 0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "sub", {
+ get: function () {
+ return 1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "sup", {
+ get: function () {
+ return 2;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.setChildInheritedAttributes = function (t, e, r, n) {
+ var o = this.childNodes;
+ o[0].setInheritedAttributes(t, e, r, n),
+ o[1].setInheritedAttributes(t, !1, r + 1, n || 1 === this.sub),
+ o[2] &&
+ o[2].setInheritedAttributes(t, !1, r + 1, n || 2 === this.sub);
+ }),
+ (e.defaults = i(i({}, s.AbstractMmlBaseNode.defaults), {
+ subscriptshift: "",
+ superscriptshift: "",
+ })),
+ e
+ );
+ })(s.AbstractMmlBaseNode);
+ e.MmlMsubsup = a;
+ var l = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "msub";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return 2;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.defaults = i({}, a.defaults)),
+ e
+ );
+ })(a);
+ e.MmlMsub = l;
+ var u = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "msup";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return 2;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "sup", {
+ get: function () {
+ return 1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "sub", {
+ get: function () {
+ return 2;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.defaults = i({}, a.defaults)),
+ e
+ );
+ })(a);
+ e.MmlMsup = u;
+ },
+ function (t, e, r) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.split =
+ e.isPercent =
+ e.unicodeChars =
+ e.quotePattern =
+ e.sortLength =
+ void 0),
+ (e.sortLength = function (t, e) {
+ return t.length !== e.length
+ ? e.length - t.length
+ : t === e
+ ? 0
+ : t < e
+ ? -1
+ : 1;
+ }),
+ (e.quotePattern = function (t) {
+ return t.replace(/([\^$(){}+*?\-|\[\]\:\\])/g, "\\$1");
+ }),
+ (e.unicodeChars = function (t) {
+ return Array.from(t).map(function (t) {
+ return t.codePointAt(0);
+ });
+ }),
+ (e.isPercent = function (t) {
+ return !!t.match(/%\s*$/);
+ }),
+ (e.split = function (t) {
+ return t.trim().split(/\s+/);
+ });
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ });
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlVisitor = void 0);
+ var i = r(9),
+ s = (function (t) {
+ function e(e) {
+ void 0 === e && (e = null);
+ return e || (e = new i.MmlFactory()), t.call(this, e) || this;
+ }
+ return (
+ o(e, t),
+ (e.prototype.visitTextNode = function (t) {
+ for (var e = [], r = 1; r < arguments.length; r++)
+ e[r - 1] = arguments[r];
+ }),
+ (e.prototype.visitXMLNode = function (t) {
+ for (var e = [], r = 1; r < arguments.length; r++)
+ e[r - 1] = arguments[r];
+ }),
+ e
+ );
+ })(r(59).AbstractVisitor);
+ e.MmlVisitor = s;
+ },
+ function (t, e, r) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }), (e.mathjax = void 0);
+ var n = r(58),
+ o = r(18);
+ e.mathjax = {
+ version: "3.1.2",
+ handlers: new n.HandlerList(),
+ document: function (t, r) {
+ return e.mathjax.handlers.document(t, r);
+ },
+ handleRetriesFor: o.handleRetriesFor,
+ retryAfter: o.retryAfter,
+ asyncLoad: null,
+ };
+ },
+ function (t, e, r) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.retryAfter = e.handleRetriesFor = void 0),
+ (e.handleRetriesFor = function (t) {
+ return new Promise(function e(r, n) {
+ try {
+ r(t());
+ } catch (t) {
+ t.retry && t.retry instanceof Promise
+ ? t.retry
+ .then(function () {
+ return e(r, n);
+ })
+ .catch(function (t) {
+ return n(t);
+ })
+ : t.restart && t.restart.isCallback
+ ? MathJax.Callback.After(function () {
+ return e(r, n);
+ }, t.restart)
+ : n(t);
+ }
+ });
+ }),
+ (e.retryAfter = function (t) {
+ var e = new Error("MathJax retry");
+ throw ((e.retry = t), e);
+ });
+ },
+ function (t, e, r) {
+ "use strict";
+ (function (t) {
+ var r =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ function n(t) {
+ return "object" == typeof t && null !== t;
+ }
+ function o(t, e) {
+ var i, s;
+ try {
+ for (var a = r(Object.keys(e)), l = a.next(); !l.done; l = a.next()) {
+ var u = l.value;
+ "__esModule" !== u &&
+ (!n(t[u]) || !n(e[u]) || e[u] instanceof Promise
+ ? null !== e[u] && void 0 !== e[u] && (t[u] = e[u])
+ : o(t[u], e[u]));
+ }
+ } catch (t) {
+ i = { error: t };
+ } finally {
+ try {
+ l && !l.done && (s = a.return) && s.call(a);
+ } finally {
+ if (i) throw i.error;
+ }
+ }
+ return t;
+ }
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MathJax =
+ e.combineWithMathJax =
+ e.combineDefaults =
+ e.combineConfig =
+ e.isObject =
+ void 0),
+ (e.isObject = n),
+ (e.combineConfig = o),
+ (e.combineDefaults = function t(e, o, i) {
+ var s, a;
+ e[o] || (e[o] = {}), (e = e[o]);
+ try {
+ for (
+ var l = r(Object.keys(i)), u = l.next();
+ !u.done;
+ u = l.next()
+ ) {
+ var c = u.value;
+ n(e[c]) && n(i[c])
+ ? t(e, c, i[c])
+ : null == e[c] && null != i[c] && (e[c] = i[c]);
+ }
+ } catch (t) {
+ s = { error: t };
+ } finally {
+ try {
+ u && !u.done && (a = l.return) && a.call(l);
+ } finally {
+ if (s) throw s.error;
+ }
+ }
+ return e;
+ }),
+ (e.combineWithMathJax = function (t) {
+ return o(e.MathJax, t);
+ }),
+ void 0 === t.MathJax && (t.MathJax = {}),
+ t.MathJax.version ||
+ (t.MathJax = { version: "3.1.2", _: {}, config: t.MathJax }),
+ (e.MathJax = t.MathJax);
+ }).call(this, r(77));
+ },
+ function (t, e, r) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.browserAdaptor = void 0);
+ var n = r(21);
+ e.browserAdaptor = function () {
+ return new n.HTMLAdaptor(window);
+ };
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.HTMLAdaptor = void 0);
+ var s = (function (t) {
+ function e(e) {
+ var r = t.call(this, e.document) || this;
+ return (r.window = e), (r.parser = new e.DOMParser()), r;
+ }
+ return (
+ o(e, t),
+ (e.prototype.parse = function (t, e) {
+ return (
+ void 0 === e && (e = "text/html"), this.parser.parseFromString(t, e)
+ );
+ }),
+ (e.prototype.create = function (t, e) {
+ return e
+ ? this.document.createElementNS(e, t)
+ : this.document.createElement(t);
+ }),
+ (e.prototype.text = function (t) {
+ return this.document.createTextNode(t);
+ }),
+ (e.prototype.head = function (t) {
+ return t.head;
+ }),
+ (e.prototype.body = function (t) {
+ return t.body;
+ }),
+ (e.prototype.root = function (t) {
+ return t.documentElement;
+ }),
+ (e.prototype.doctype = function (t) {
+ return "";
+ }),
+ (e.prototype.tags = function (t, e, r) {
+ void 0 === r && (r = null);
+ var n = r
+ ? t.getElementsByTagNameNS(r, e)
+ : t.getElementsByTagName(e);
+ return Array.from(n);
+ }),
+ (e.prototype.getElements = function (t, e) {
+ var r,
+ n,
+ o = [];
+ try {
+ for (var s = i(t), a = s.next(); !a.done; a = s.next()) {
+ var l = a.value;
+ "string" == typeof l
+ ? (o = o.concat(Array.from(this.document.querySelectorAll(l))))
+ : Array.isArray(l) ||
+ l instanceof this.window.NodeList ||
+ l instanceof this.window.HTMLCollection
+ ? (o = o.concat(Array.from(l)))
+ : o.push(l);
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ a && !a.done && (n = s.return) && n.call(s);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ return o;
+ }),
+ (e.prototype.contains = function (t, e) {
+ return t.contains(e);
+ }),
+ (e.prototype.parent = function (t) {
+ return t.parentNode;
+ }),
+ (e.prototype.append = function (t, e) {
+ return t.appendChild(e);
+ }),
+ (e.prototype.insert = function (t, e) {
+ return this.parent(e).insertBefore(t, e);
+ }),
+ (e.prototype.remove = function (t) {
+ return this.parent(t).removeChild(t);
+ }),
+ (e.prototype.replace = function (t, e) {
+ return this.parent(e).replaceChild(t, e);
+ }),
+ (e.prototype.clone = function (t) {
+ return t.cloneNode(!0);
+ }),
+ (e.prototype.split = function (t, e) {
+ return t.splitText(e);
+ }),
+ (e.prototype.next = function (t) {
+ return t.nextSibling;
+ }),
+ (e.prototype.previous = function (t) {
+ return t.previousSibling;
+ }),
+ (e.prototype.firstChild = function (t) {
+ return t.firstChild;
+ }),
+ (e.prototype.lastChild = function (t) {
+ return t.lastChild;
+ }),
+ (e.prototype.childNodes = function (t) {
+ return Array.from(t.childNodes);
+ }),
+ (e.prototype.childNode = function (t, e) {
+ return t.childNodes[e];
+ }),
+ (e.prototype.kind = function (t) {
+ return t.nodeName.toLowerCase();
+ }),
+ (e.prototype.value = function (t) {
+ return t.nodeValue || "";
+ }),
+ (e.prototype.textContent = function (t) {
+ return t.textContent;
+ }),
+ (e.prototype.innerHTML = function (t) {
+ return t.innerHTML;
+ }),
+ (e.prototype.outerHTML = function (t) {
+ return t.outerHTML;
+ }),
+ (e.prototype.setAttribute = function (t, e, r, n) {
+ return (
+ void 0 === n && (n = null),
+ n
+ ? ((e = n.replace(/.*\//, "") + ":" + e.replace(/^.*:/, "")),
+ t.setAttributeNS(n, e, r))
+ : t.setAttribute(e, r)
+ );
+ }),
+ (e.prototype.getAttribute = function (t, e) {
+ return t.getAttribute(e);
+ }),
+ (e.prototype.removeAttribute = function (t, e) {
+ return t.removeAttribute(e);
+ }),
+ (e.prototype.hasAttribute = function (t, e) {
+ return t.hasAttribute(e);
+ }),
+ (e.prototype.allAttributes = function (t) {
+ return Array.from(t.attributes).map(function (t) {
+ return { name: t.name, value: t.value };
+ });
+ }),
+ (e.prototype.addClass = function (t, e) {
+ t.classList
+ ? t.classList.add(e)
+ : (t.className = (t.className + " " + e).trim());
+ }),
+ (e.prototype.removeClass = function (t, e) {
+ t.classList
+ ? t.classList.remove(e)
+ : (t.className = t.className
+ .split(/ /)
+ .filter(function (t) {
+ return t !== e;
+ })
+ .join(" "));
+ }),
+ (e.prototype.hasClass = function (t, e) {
+ return t.classList
+ ? t.classList.contains(e)
+ : t.className.split(/ /).indexOf(e) >= 0;
+ }),
+ (e.prototype.setStyle = function (t, e, r) {
+ t.style[e] = r;
+ }),
+ (e.prototype.getStyle = function (t, e) {
+ return t.style[e];
+ }),
+ (e.prototype.allStyles = function (t) {
+ return t.style.cssText;
+ }),
+ (e.prototype.fontSize = function (t) {
+ var e = this.window.getComputedStyle(t);
+ return parseFloat(e.fontSize);
+ }),
+ (e.prototype.fontFamily = function (t) {
+ return this.window.getComputedStyle(t).fontFamily || "";
+ }),
+ (e.prototype.nodeSize = function (t, e, r) {
+ if (
+ (void 0 === e && (e = 1), void 0 === r && (r = !1), r && t.getBBox)
+ ) {
+ var n = t.getBBox();
+ return [n.width / e, n.height / e];
+ }
+ return [t.offsetWidth / e, t.offsetHeight / e];
+ }),
+ (e.prototype.nodeBBox = function (t) {
+ var e = t.getBoundingClientRect();
+ return { left: e.left, right: e.right, top: e.top, bottom: e.bottom };
+ }),
+ e
+ );
+ })(r(22).AbstractDOMAdaptor);
+ e.HTMLAdaptor = s;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.AbstractDOMAdaptor = void 0);
+ var o = (function () {
+ function t(t) {
+ void 0 === t && (t = null), (this.document = t);
+ }
+ return (
+ (t.prototype.node = function (t, e, r, o) {
+ var i, s;
+ void 0 === e && (e = {}), void 0 === r && (r = []);
+ var a = this.create(t, o);
+ this.setAttributes(a, e);
+ try {
+ for (var l = n(r), u = l.next(); !u.done; u = l.next()) {
+ var c = u.value;
+ this.append(a, c);
+ }
+ } catch (t) {
+ i = { error: t };
+ } finally {
+ try {
+ u && !u.done && (s = l.return) && s.call(l);
+ } finally {
+ if (i) throw i.error;
+ }
+ }
+ return a;
+ }),
+ (t.prototype.setAttributes = function (t, e) {
+ var r, o, i, s, a, l;
+ if (e.style && "string" != typeof e.style)
+ try {
+ for (
+ var u = n(Object.keys(e.style)), c = u.next();
+ !c.done;
+ c = u.next()
+ ) {
+ var p = c.value;
+ this.setStyle(
+ t,
+ p.replace(/-([a-z])/g, function (t, e) {
+ return e.toUpperCase();
+ }),
+ e.style[p],
+ );
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ c && !c.done && (o = u.return) && o.call(u);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ if (e.properties)
+ try {
+ for (
+ var f = n(Object.keys(e.properties)), h = f.next();
+ !h.done;
+ h = f.next()
+ ) {
+ t[(p = h.value)] = e.properties[p];
+ }
+ } catch (t) {
+ i = { error: t };
+ } finally {
+ try {
+ h && !h.done && (s = f.return) && s.call(f);
+ } finally {
+ if (i) throw i.error;
+ }
+ }
+ try {
+ for (
+ var d = n(Object.keys(e)), y = d.next();
+ !y.done;
+ y = d.next()
+ ) {
+ ("style" === (p = y.value) && "string" != typeof e.style) ||
+ "properties" === p ||
+ this.setAttribute(t, p, e[p]);
+ }
+ } catch (t) {
+ a = { error: t };
+ } finally {
+ try {
+ y && !y.done && (l = d.return) && l.call(d);
+ } finally {
+ if (a) throw a.error;
+ }
+ }
+ }),
+ (t.prototype.replace = function (t, e) {
+ return this.insert(t, e), this.remove(e), e;
+ }),
+ (t.prototype.childNode = function (t, e) {
+ return this.childNodes(t)[e];
+ }),
+ (t.prototype.allClasses = function (t) {
+ var e = this.getAttribute(t, "class");
+ return e
+ ? e
+ .replace(/ +/g, " ")
+ .replace(/^ /, "")
+ .replace(/ $/, "")
+ .split(/ /)
+ : [];
+ }),
+ t
+ );
+ })();
+ e.AbstractDOMAdaptor = o;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ });
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.AbstractHandler = void 0);
+ var i = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return o(e, t), e;
+ })(r(6).AbstractMathDocument),
+ s = (function () {
+ function t(t, e) {
+ void 0 === e && (e = 5),
+ (this.documentClass = i),
+ (this.adaptor = t),
+ (this.priority = e);
+ }
+ return (
+ Object.defineProperty(t.prototype, "name", {
+ get: function () {
+ return this.constructor.NAME;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (t.prototype.handlesDocument = function (t) {
+ return !1;
+ }),
+ (t.prototype.create = function (t, e) {
+ return new this.documentClass(t, this.adaptor, e);
+ }),
+ (t.NAME = "generic"),
+ t
+ );
+ })();
+ e.AbstractHandler = s;
+ },
+ function (t, e, r) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.AbstractInputJax = void 0);
+ var n = r(1),
+ o = r(7),
+ i = (function () {
+ function t(t) {
+ void 0 === t && (t = {}),
+ (this.adaptor = null),
+ (this.mmlFactory = null);
+ var e = this.constructor;
+ (this.options = n.userOptions(n.defaultOptions({}, e.OPTIONS), t)),
+ (this.preFilters = new o.FunctionList()),
+ (this.postFilters = new o.FunctionList());
+ }
+ return (
+ Object.defineProperty(t.prototype, "name", {
+ get: function () {
+ return this.constructor.NAME;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (t.prototype.setAdaptor = function (t) {
+ this.adaptor = t;
+ }),
+ (t.prototype.setMmlFactory = function (t) {
+ this.mmlFactory = t;
+ }),
+ (t.prototype.initialize = function () {}),
+ Object.defineProperty(t.prototype, "processStrings", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (t.prototype.findMath = function (t, e) {
+ return [];
+ }),
+ (t.prototype.executeFilters = function (t, e, r, n) {
+ var o = { math: e, document: r, data: n };
+ return t.execute(o), o.data;
+ }),
+ (t.NAME = "generic"),
+ (t.OPTIONS = {}),
+ t
+ );
+ })();
+ e.AbstractInputJax = i;
+ },
+ function (t, e, r) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.AbstractOutputJax = void 0);
+ var n = r(1),
+ o = r(7),
+ i = (function () {
+ function t(t) {
+ void 0 === t && (t = {}), (this.adaptor = null);
+ var e = this.constructor;
+ (this.options = n.userOptions(n.defaultOptions({}, e.OPTIONS), t)),
+ (this.postFilters = new o.FunctionList());
+ }
+ return (
+ Object.defineProperty(t.prototype, "name", {
+ get: function () {
+ return this.constructor.NAME;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (t.prototype.setAdaptor = function (t) {
+ this.adaptor = t;
+ }),
+ (t.prototype.initialize = function () {}),
+ (t.prototype.getMetrics = function (t) {}),
+ (t.prototype.styleSheet = function (t) {
+ return null;
+ }),
+ (t.prototype.pageElements = function (t) {
+ return null;
+ }),
+ (t.prototype.executeFilters = function (t, e, r, n) {
+ var o = { math: e, document: r, data: n };
+ return t.execute(o), o.data;
+ }),
+ (t.NAME = "generic"),
+ (t.OPTIONS = {}),
+ t
+ );
+ })();
+ e.AbstractOutputJax = i;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n =
+ (this && this.__read) ||
+ function (t, e) {
+ var r = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!r) return t;
+ var n,
+ o,
+ i = r.call(t),
+ s = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(n = i.next()).done; )
+ s.push(n.value);
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ n && !n.done && (r = i.return) && r.call(i);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ return s;
+ },
+ o =
+ (this && this.__spread) ||
+ function () {
+ for (var t = [], e = 0; e < arguments.length; e++)
+ t = t.concat(n(arguments[e]));
+ return t;
+ },
+ i =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.LinkedList = e.ListItem = e.END = void 0),
+ (e.END = Symbol());
+ var s = function (t) {
+ void 0 === t && (t = null),
+ (this.next = null),
+ (this.prev = null),
+ (this.data = t);
+ };
+ e.ListItem = s;
+ var a = (function () {
+ function t() {
+ for (var t = [], r = 0; r < arguments.length; r++) t[r] = arguments[r];
+ (this.list = new s(e.END)),
+ (this.list.next = this.list.prev = this.list),
+ this.push.apply(this, o(t));
+ }
+ return (
+ (t.prototype.toArray = function () {
+ return Array.from(this);
+ }),
+ (t.prototype.isBefore = function (t, e) {
+ return t < e;
+ }),
+ (t.prototype.push = function () {
+ for (var t, e, r = [], n = 0; n < arguments.length; n++)
+ r[n] = arguments[n];
+ try {
+ for (var o = i(r), a = o.next(); !a.done; a = o.next()) {
+ var l = a.value,
+ u = new s(l);
+ (u.next = this.list),
+ (u.prev = this.list.prev),
+ (this.list.prev = u),
+ (u.prev.next = u);
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ a && !a.done && (e = o.return) && e.call(o);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ return this;
+ }),
+ (t.prototype.pop = function () {
+ var t = this.list.prev;
+ return t.data === e.END
+ ? null
+ : ((this.list.prev = t.prev),
+ (t.prev.next = this.list),
+ (t.next = t.prev = null),
+ t.data);
+ }),
+ (t.prototype.unshift = function () {
+ for (var t, e, r = [], n = 0; n < arguments.length; n++)
+ r[n] = arguments[n];
+ try {
+ for (
+ var o = i(r.slice(0).reverse()), a = o.next();
+ !a.done;
+ a = o.next()
+ ) {
+ var l = a.value,
+ u = new s(l);
+ (u.next = this.list.next),
+ (u.prev = this.list),
+ (this.list.next = u),
+ (u.next.prev = u);
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ a && !a.done && (e = o.return) && e.call(o);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ return this;
+ }),
+ (t.prototype.shift = function () {
+ var t = this.list.next;
+ return t.data === e.END
+ ? null
+ : ((this.list.next = t.next),
+ (t.next.prev = this.list),
+ (t.next = t.prev = null),
+ t.data);
+ }),
+ (t.prototype.remove = function () {
+ for (var t, r, n = [], o = 0; o < arguments.length; o++)
+ n[o] = arguments[o];
+ var s = new Map();
+ try {
+ for (var a = i(n), l = a.next(); !l.done; l = a.next()) {
+ var u = l.value;
+ s.set(u, !0);
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ l && !l.done && (r = a.return) && r.call(a);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ for (var c = this.list.next; c.data !== e.END; ) {
+ var p = c.next;
+ s.has(c.data) &&
+ ((c.prev.next = c.next),
+ (c.next.prev = c.prev),
+ (c.next = c.prev = null)),
+ (c = p);
+ }
+ }),
+ (t.prototype.clear = function () {
+ return (
+ (this.list.next.prev = this.list.prev.next = null),
+ (this.list.next = this.list.prev = this.list),
+ this
+ );
+ }),
+ (t.prototype[Symbol.iterator] = function () {
+ var t = this.list;
+ return {
+ next: function () {
+ return (t = t.next).data === e.END
+ ? { value: null, done: !0 }
+ : { value: t.data, done: !1 };
+ },
+ };
+ }),
+ (t.prototype.reversed = function () {
+ var t,
+ r = this.list;
+ return (
+ ((t = {})[Symbol.iterator] = function () {
+ return this;
+ }),
+ (t.next = function () {
+ return (r = r.prev).data === e.END
+ ? { value: null, done: !0 }
+ : { value: r.data, done: !1 };
+ }),
+ (t.toArray = function () {
+ return Array.from(this);
+ }),
+ t
+ );
+ }),
+ (t.prototype.insert = function (t, r) {
+ void 0 === r && (r = null),
+ null === r && (r = this.isBefore.bind(this));
+ for (
+ var n = new s(t), o = this.list.next;
+ o.data !== e.END && r(o.data, n.data);
+ )
+ o = o.next;
+ return (
+ (n.prev = o.prev), (n.next = o), (o.prev.next = o.prev = n), this
+ );
+ }),
+ (t.prototype.sort = function (e) {
+ var r, n;
+ void 0 === e && (e = null),
+ null === e && (e = this.isBefore.bind(this));
+ var o = [];
+ try {
+ for (var s = i(this), a = s.next(); !a.done; a = s.next()) {
+ var l = a.value;
+ o.push(new t(l));
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ a && !a.done && (n = s.return) && n.call(s);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ for (this.list.next = this.list.prev = this.list; o.length > 1; ) {
+ var u = o.shift(),
+ c = o.shift();
+ u.merge(c, e), o.push(u);
+ }
+ return o.length && (this.list = o[0].list), this;
+ }),
+ (t.prototype.merge = function (t, r) {
+ var o, i, s, a, l;
+ void 0 === r && (r = null),
+ null === r && (r = this.isBefore.bind(this));
+ for (
+ var u = this.list.next, c = t.list.next;
+ u.data !== e.END && c.data !== e.END;
+ )
+ r(c.data, u.data)
+ ? ((o = n([u, c], 2)),
+ (c.prev.next = o[0]),
+ (u.prev.next = o[1]),
+ (i = n([u.prev, c.prev], 2)),
+ (c.prev = i[0]),
+ (u.prev = i[1]),
+ (s = n([t.list, this.list], 2)),
+ (this.list.prev.next = s[0]),
+ (t.list.prev.next = s[1]),
+ (a = n([t.list.prev, this.list.prev], 2)),
+ (this.list.prev = a[0]),
+ (t.list.prev = a[1]),
+ (u = (l = n([c.next, u], 2))[0]),
+ (c = l[1]))
+ : (u = u.next);
+ return (
+ c.data !== e.END &&
+ ((this.list.prev.next = t.list.next),
+ (t.list.next.prev = this.list.prev),
+ (t.list.prev.next = this.list),
+ (this.list.prev = t.list.prev),
+ (t.list.next = t.list.prev = t.list)),
+ this
+ );
+ }),
+ t
+ );
+ })();
+ e.LinkedList = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ });
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.AbstractNodeFactory = void 0);
+ var i = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ (e.prototype.create = function (t, e, r) {
+ return (
+ void 0 === e && (e = {}),
+ void 0 === r && (r = []),
+ this.node[t](e, r)
+ );
+ }),
+ e
+ );
+ })(r(10).AbstractFactory);
+ e.AbstractNodeFactory = i;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n;
+ Object.defineProperty(e, "__esModule", { value: !0 }), (e.MML = void 0);
+ var o = r(0),
+ i = r(29),
+ s = r(12),
+ a = r(30),
+ l = r(13),
+ u = r(32),
+ c = r(33),
+ p = r(34),
+ f = r(35),
+ h = r(36),
+ d = r(37),
+ y = r(38),
+ O = r(39),
+ M = r(40),
+ E = r(41),
+ v = r(42),
+ m = r(43),
+ b = r(44),
+ g = r(45),
+ L = r(14),
+ N = r(46),
+ R = r(47),
+ T = r(48),
+ A = r(49),
+ _ = r(50),
+ S = r(51),
+ C = r(52),
+ x = r(53),
+ I = r(54),
+ P = r(55),
+ w = r(56);
+ e.MML =
+ (((n = {})[i.MmlMath.prototype.kind] = i.MmlMath),
+ (n[s.MmlMi.prototype.kind] = s.MmlMi),
+ (n[a.MmlMn.prototype.kind] = a.MmlMn),
+ (n[l.MmlMo.prototype.kind] = l.MmlMo),
+ (n[u.MmlMtext.prototype.kind] = u.MmlMtext),
+ (n[c.MmlMspace.prototype.kind] = c.MmlMspace),
+ (n[p.MmlMs.prototype.kind] = p.MmlMs),
+ (n[f.MmlMrow.prototype.kind] = f.MmlMrow),
+ (n[f.MmlInferredMrow.prototype.kind] = f.MmlInferredMrow),
+ (n[h.MmlMfrac.prototype.kind] = h.MmlMfrac),
+ (n[d.MmlMsqrt.prototype.kind] = d.MmlMsqrt),
+ (n[y.MmlMroot.prototype.kind] = y.MmlMroot),
+ (n[O.MmlMstyle.prototype.kind] = O.MmlMstyle),
+ (n[M.MmlMerror.prototype.kind] = M.MmlMerror),
+ (n[E.MmlMpadded.prototype.kind] = E.MmlMpadded),
+ (n[v.MmlMphantom.prototype.kind] = v.MmlMphantom),
+ (n[m.MmlMfenced.prototype.kind] = m.MmlMfenced),
+ (n[b.MmlMenclose.prototype.kind] = b.MmlMenclose),
+ (n[g.MmlMaction.prototype.kind] = g.MmlMaction),
+ (n[L.MmlMsub.prototype.kind] = L.MmlMsub),
+ (n[L.MmlMsup.prototype.kind] = L.MmlMsup),
+ (n[L.MmlMsubsup.prototype.kind] = L.MmlMsubsup),
+ (n[N.MmlMunder.prototype.kind] = N.MmlMunder),
+ (n[N.MmlMover.prototype.kind] = N.MmlMover),
+ (n[N.MmlMunderover.prototype.kind] = N.MmlMunderover),
+ (n[R.MmlMmultiscripts.prototype.kind] = R.MmlMmultiscripts),
+ (n[R.MmlMprescripts.prototype.kind] = R.MmlMprescripts),
+ (n[R.MmlNone.prototype.kind] = R.MmlNone),
+ (n[T.MmlMtable.prototype.kind] = T.MmlMtable),
+ (n[A.MmlMlabeledtr.prototype.kind] = A.MmlMlabeledtr),
+ (n[A.MmlMtr.prototype.kind] = A.MmlMtr),
+ (n[_.MmlMtd.prototype.kind] = _.MmlMtd),
+ (n[S.MmlMaligngroup.prototype.kind] = S.MmlMaligngroup),
+ (n[C.MmlMalignmark.prototype.kind] = C.MmlMalignmark),
+ (n[x.MmlMglyph.prototype.kind] = x.MmlMglyph),
+ (n[I.MmlSemantics.prototype.kind] = I.MmlSemantics),
+ (n[I.MmlAnnotation.prototype.kind] = I.MmlAnnotation),
+ (n[I.MmlAnnotationXML.prototype.kind] = I.MmlAnnotationXML),
+ (n[P.TeXAtom.prototype.kind] = P.TeXAtom),
+ (n[w.MathChoice.prototype.kind] = w.MathChoice),
+ (n[o.TextNode.prototype.kind] = o.TextNode),
+ (n[o.XMLNode.prototype.kind] = o.XMLNode),
+ n);
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }), (e.MmlMath = void 0);
+ var s = r(0),
+ a = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "math";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "linebreakContainer", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.setChildInheritedAttributes = function (e, r, n, o) {
+ "display" === this.attributes.get("mode") &&
+ this.attributes.setInherited("display", "block"),
+ (e = this.addInheritedAttributes(
+ e,
+ this.attributes.getAllAttributes(),
+ )),
+ (r =
+ !!this.attributes.get("displaystyle") ||
+ (!this.attributes.get("displaystyle") &&
+ "block" === this.attributes.get("display"))),
+ this.attributes.setInherited("displaystyle", r),
+ (n =
+ this.attributes.get("scriptlevel") ||
+ this.constructor.defaults.scriptlevel),
+ t.prototype.setChildInheritedAttributes.call(this, e, r, n, o);
+ }),
+ (e.defaults = i(i({}, s.AbstractMmlLayoutNode.defaults), {
+ mathvariant: "normal",
+ mathsize: "normal",
+ mathcolor: "",
+ mathbackground: "transparent",
+ dir: "ltr",
+ scriptlevel: 0,
+ displaystyle: !1,
+ display: "inline",
+ maxwidth: "",
+ overflow: "linebreak",
+ altimg: "",
+ "altimg-width": "",
+ "altimg-height": "",
+ "altimg-valign": "",
+ alttext: "",
+ cdgroup: "",
+ scriptsizemultiplier: 1 / Math.sqrt(2),
+ scriptminsize: "8px",
+ infixlinebreakstyle: "before",
+ lineleading: "1ex",
+ linebreakmultchar: "\u2062",
+ indentshift: "auto",
+ indentalign: "auto",
+ indenttarget: "",
+ indentalignfirst: "indentalign",
+ indentshiftfirst: "indentshift",
+ indentalignlast: "indentalign",
+ indentshiftlast: "indentshift",
+ })),
+ e
+ );
+ })(s.AbstractMmlLayoutNode);
+ e.MmlMath = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }), (e.MmlMn = void 0);
+ var s = r(0),
+ a = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (e.texClass = s.TEXCLASS.ORD), e;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "mn";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.defaults = i({}, s.AbstractMmlTokenNode.defaults)),
+ e
+ );
+ })(s.AbstractMmlTokenNode);
+ e.MmlMn = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.OPTABLE = e.MMLSPACING = e.RANGES = e.MO = e.OPDEF = void 0);
+ var n = r(0);
+ function o(t, e, r, o) {
+ return (
+ void 0 === r && (r = n.TEXCLASS.BIN),
+ void 0 === o && (o = null),
+ [t, e, r, o]
+ );
+ }
+ (e.OPDEF = o),
+ (e.MO = {
+ ORD: o(0, 0, n.TEXCLASS.ORD),
+ ORD11: o(1, 1, n.TEXCLASS.ORD),
+ ORD21: o(2, 1, n.TEXCLASS.ORD),
+ ORD02: o(0, 2, n.TEXCLASS.ORD),
+ ORD55: o(5, 5, n.TEXCLASS.ORD),
+ OP: o(1, 2, n.TEXCLASS.OP, {
+ largeop: !0,
+ movablelimits: !0,
+ symmetric: !0,
+ }),
+ OPFIXED: o(1, 2, n.TEXCLASS.OP, { largeop: !0, movablelimits: !0 }),
+ INTEGRAL: o(0, 1, n.TEXCLASS.OP, { largeop: !0, symmetric: !0 }),
+ INTEGRAL2: o(1, 2, n.TEXCLASS.OP, { largeop: !0, symmetric: !0 }),
+ BIN3: o(3, 3, n.TEXCLASS.BIN),
+ BIN4: o(4, 4, n.TEXCLASS.BIN),
+ BIN01: o(0, 1, n.TEXCLASS.BIN),
+ BIN5: o(5, 5, n.TEXCLASS.BIN),
+ TALLBIN: o(4, 4, n.TEXCLASS.BIN, { stretchy: !0 }),
+ BINOP: o(4, 4, n.TEXCLASS.BIN, { largeop: !0, movablelimits: !0 }),
+ REL: o(5, 5, n.TEXCLASS.REL),
+ REL1: o(1, 1, n.TEXCLASS.REL, { stretchy: !0 }),
+ REL4: o(4, 4, n.TEXCLASS.REL),
+ RELSTRETCH: o(5, 5, n.TEXCLASS.REL, { stretchy: !0 }),
+ RELACCENT: o(5, 5, n.TEXCLASS.REL, { accent: !0 }),
+ WIDEREL: o(5, 5, n.TEXCLASS.REL, { accent: !0, stretchy: !0 }),
+ OPEN: o(0, 0, n.TEXCLASS.OPEN, {
+ fence: !0,
+ stretchy: !0,
+ symmetric: !0,
+ }),
+ CLOSE: o(0, 0, n.TEXCLASS.CLOSE, {
+ fence: !0,
+ stretchy: !0,
+ symmetric: !0,
+ }),
+ INNER: o(0, 0, n.TEXCLASS.INNER),
+ PUNCT: o(0, 3, n.TEXCLASS.PUNCT),
+ ACCENT: o(0, 0, n.TEXCLASS.ORD, { accent: !0 }),
+ WIDEACCENT: o(0, 0, n.TEXCLASS.ORD, { accent: !0, stretchy: !0 }),
+ }),
+ (e.RANGES = [
+ [32, 127, n.TEXCLASS.REL, "BasicLatin"],
+ [160, 255, n.TEXCLASS.ORD, "Latin1Supplement"],
+ [256, 383, n.TEXCLASS.ORD, "LatinExtendedA"],
+ [384, 591, n.TEXCLASS.ORD, "LatinExtendedB"],
+ [688, 767, n.TEXCLASS.ORD, "SpacingModLetters"],
+ [768, 879, n.TEXCLASS.ORD, "CombDiacritMarks"],
+ [880, 1023, n.TEXCLASS.ORD, "GreekAndCoptic"],
+ [7680, 7935, n.TEXCLASS.ORD, "LatinExtendedAdditional"],
+ [8192, 8303, n.TEXCLASS.PUNCT, "GeneralPunctuation"],
+ [8304, 8351, n.TEXCLASS.ORD, "SuperAndSubscripts"],
+ [8352, 8399, n.TEXCLASS.ORD, "Currency"],
+ [8400, 8447, n.TEXCLASS.ORD, "CombDiactForSymbols"],
+ [8448, 8527, n.TEXCLASS.ORD, "LetterlikeSymbols"],
+ [8528, 8591, n.TEXCLASS.ORD, "NumberForms"],
+ [8592, 8703, n.TEXCLASS.REL, "Arrows"],
+ [8704, 8959, n.TEXCLASS.BIN, "MathOperators"],
+ [8960, 9215, n.TEXCLASS.ORD, "MiscTechnical"],
+ [9312, 9471, n.TEXCLASS.ORD, "EnclosedAlphaNums"],
+ [9472, 9631, n.TEXCLASS.ORD, "BoxDrawing"],
+ [9632, 9727, n.TEXCLASS.ORD, "GeometricShapes"],
+ [9984, 10175, n.TEXCLASS.ORD, "Dingbats"],
+ [10176, 10223, n.TEXCLASS.ORD, "MiscMathSymbolsA"],
+ [10224, 10239, n.TEXCLASS.REL, "SupplementalArrowsA"],
+ [10496, 10623, n.TEXCLASS.REL, "SupplementalArrowsB"],
+ [10624, 10751, n.TEXCLASS.ORD, "MiscMathSymbolsB"],
+ [10752, 11007, n.TEXCLASS.BIN, "SuppMathOperators"],
+ [11008, 11263, n.TEXCLASS.ORD, "MiscSymbolsAndArrows"],
+ [119808, 120831, n.TEXCLASS.ORD, "MathAlphabets"],
+ ]),
+ (e.MMLSPACING = [
+ [0, 0],
+ [1, 2],
+ [3, 3],
+ [4, 4],
+ [0, 0],
+ [0, 0],
+ [0, 3],
+ ]),
+ (e.OPTABLE = {
+ prefix: {
+ "(": e.MO.OPEN,
+ "+": e.MO.BIN01,
+ "-": e.MO.BIN01,
+ "[": e.MO.OPEN,
+ "{": e.MO.OPEN,
+ "|": e.MO.OPEN,
+ "||": [
+ 0,
+ 0,
+ n.TEXCLASS.BIN,
+ { fence: !0, stretchy: !0, symmetric: !0 },
+ ],
+ "|||": [
+ 0,
+ 0,
+ n.TEXCLASS.ORD,
+ { fence: !0, stretchy: !0, symmetric: !0 },
+ ],
+ "\xac": e.MO.ORD21,
+ "\xb1": e.MO.BIN01,
+ "\u2016": [0, 0, n.TEXCLASS.ORD, { fence: !0, stretchy: !0 }],
+ "\u2018": [0, 0, n.TEXCLASS.OPEN, { fence: !0 }],
+ "\u201c": [0, 0, n.TEXCLASS.OPEN, { fence: !0 }],
+ "\u2145": e.MO.ORD21,
+ "\u2146": o(2, 0, n.TEXCLASS.ORD),
+ "\u2200": e.MO.ORD21,
+ "\u2202": e.MO.ORD21,
+ "\u2203": e.MO.ORD21,
+ "\u2204": e.MO.ORD21,
+ "\u2207": e.MO.ORD21,
+ "\u220f": e.MO.OP,
+ "\u2210": e.MO.OP,
+ "\u2211": e.MO.OP,
+ "\u2212": e.MO.BIN01,
+ "\u2213": e.MO.BIN01,
+ "\u221a": [1, 1, n.TEXCLASS.ORD, { stretchy: !0 }],
+ "\u221b": e.MO.ORD11,
+ "\u221c": e.MO.ORD11,
+ "\u2220": e.MO.ORD,
+ "\u2221": e.MO.ORD,
+ "\u2222": e.MO.ORD,
+ "\u222b": e.MO.INTEGRAL,
+ "\u222c": e.MO.INTEGRAL,
+ "\u222d": e.MO.INTEGRAL,
+ "\u222e": e.MO.INTEGRAL,
+ "\u222f": e.MO.INTEGRAL,
+ "\u2230": e.MO.INTEGRAL,
+ "\u2231": e.MO.INTEGRAL,
+ "\u2232": e.MO.INTEGRAL,
+ "\u2233": e.MO.INTEGRAL,
+ "\u22c0": e.MO.OP,
+ "\u22c1": e.MO.OP,
+ "\u22c2": e.MO.OP,
+ "\u22c3": e.MO.OP,
+ "\u2308": e.MO.OPEN,
+ "\u230a": e.MO.OPEN,
+ "\u2772": e.MO.OPEN,
+ "\u27e6": e.MO.OPEN,
+ "\u27e8": e.MO.OPEN,
+ "\u27ea": e.MO.OPEN,
+ "\u27ec": e.MO.OPEN,
+ "\u27ee": e.MO.OPEN,
+ "\u2980": [0, 0, n.TEXCLASS.ORD, { fence: !0, stretchy: !0 }],
+ "\u2983": e.MO.OPEN,
+ "\u2985": e.MO.OPEN,
+ "\u2987": e.MO.OPEN,
+ "\u2989": e.MO.OPEN,
+ "\u298b": e.MO.OPEN,
+ "\u298d": e.MO.OPEN,
+ "\u298f": e.MO.OPEN,
+ "\u2991": e.MO.OPEN,
+ "\u2993": e.MO.OPEN,
+ "\u2995": e.MO.OPEN,
+ "\u2997": e.MO.OPEN,
+ "\u29fc": e.MO.OPEN,
+ "\u2a00": e.MO.OP,
+ "\u2a01": e.MO.OP,
+ "\u2a02": e.MO.OP,
+ "\u2a03": e.MO.OP,
+ "\u2a04": e.MO.OP,
+ "\u2a05": e.MO.OP,
+ "\u2a06": e.MO.OP,
+ "\u2a07": e.MO.OP,
+ "\u2a08": e.MO.OP,
+ "\u2a09": e.MO.OP,
+ "\u2a0a": e.MO.OP,
+ "\u2a0b": e.MO.INTEGRAL2,
+ "\u2a0c": e.MO.INTEGRAL,
+ "\u2a0d": e.MO.INTEGRAL2,
+ "\u2a0e": e.MO.INTEGRAL2,
+ "\u2a0f": e.MO.INTEGRAL2,
+ "\u2a10": e.MO.OP,
+ "\u2a11": e.MO.OP,
+ "\u2a12": e.MO.OP,
+ "\u2a13": e.MO.OP,
+ "\u2a14": e.MO.OP,
+ "\u2a15": e.MO.INTEGRAL2,
+ "\u2a16": e.MO.INTEGRAL2,
+ "\u2a17": e.MO.INTEGRAL2,
+ "\u2a18": e.MO.INTEGRAL2,
+ "\u2a19": e.MO.INTEGRAL2,
+ "\u2a1a": e.MO.INTEGRAL2,
+ "\u2a1b": e.MO.INTEGRAL2,
+ "\u2a1c": e.MO.INTEGRAL2,
+ "\u2afc": e.MO.OP,
+ "\u2aff": e.MO.OP,
+ },
+ postfix: {
+ "!!": o(1, 0),
+ "!": [1, 0, n.TEXCLASS.CLOSE, null],
+ "&": e.MO.ORD,
+ ")": e.MO.CLOSE,
+ "++": o(0, 0),
+ "--": o(0, 0),
+ "..": o(0, 0),
+ "...": e.MO.ORD,
+ "'": e.MO.ACCENT,
+ "]": e.MO.CLOSE,
+ "^": e.MO.WIDEACCENT,
+ _: e.MO.WIDEACCENT,
+ "`": e.MO.ACCENT,
+ "|": e.MO.CLOSE,
+ "}": e.MO.CLOSE,
+ "~": e.MO.WIDEACCENT,
+ "||": [
+ 0,
+ 0,
+ n.TEXCLASS.BIN,
+ { fence: !0, stretchy: !0, symmetric: !0 },
+ ],
+ "|||": [
+ 0,
+ 0,
+ n.TEXCLASS.ORD,
+ { fence: !0, stretchy: !0, symmetric: !0 },
+ ],
+ "\xa8": e.MO.ACCENT,
+ "\xaf": e.MO.WIDEACCENT,
+ "\xb0": e.MO.ORD,
+ "\xb4": e.MO.ACCENT,
+ "\xb8": e.MO.ACCENT,
+ "\u02c6": e.MO.WIDEACCENT,
+ "\u02c7": e.MO.WIDEACCENT,
+ "\u02c9": e.MO.WIDEACCENT,
+ "\u02ca": e.MO.ACCENT,
+ "\u02cb": e.MO.ACCENT,
+ "\u02cd": e.MO.WIDEACCENT,
+ "\u02d8": e.MO.ACCENT,
+ "\u02d9": e.MO.ACCENT,
+ "\u02da": e.MO.ACCENT,
+ "\u02dc": e.MO.WIDEACCENT,
+ "\u02dd": e.MO.ACCENT,
+ "\u02f7": e.MO.WIDEACCENT,
+ "\u0302": e.MO.WIDEACCENT,
+ "\u0311": e.MO.ACCENT,
+ "\u03f6": e.MO.REL,
+ "\u2016": [0, 0, n.TEXCLASS.ORD, { fence: !0, stretchy: !0 }],
+ "\u2019": [0, 0, n.TEXCLASS.CLOSE, { fence: !0 }],
+ "\u201d": [0, 0, n.TEXCLASS.CLOSE, { fence: !0 }],
+ "\u2032": e.MO.ORD02,
+ "\u203e": e.MO.WIDEACCENT,
+ "\u20db": e.MO.ACCENT,
+ "\u20dc": e.MO.ACCENT,
+ "\u2309": e.MO.CLOSE,
+ "\u230b": e.MO.CLOSE,
+ "\u23b4": e.MO.WIDEACCENT,
+ "\u23b5": e.MO.WIDEACCENT,
+ "\u23dc": e.MO.WIDEACCENT,
+ "\u23dd": e.MO.WIDEACCENT,
+ "\u23de": e.MO.WIDEACCENT,
+ "\u23df": e.MO.WIDEACCENT,
+ "\u23e0": e.MO.WIDEACCENT,
+ "\u23e1": e.MO.WIDEACCENT,
+ "\u25a0": e.MO.BIN3,
+ "\u25a1": e.MO.BIN3,
+ "\u25aa": e.MO.BIN3,
+ "\u25ab": e.MO.BIN3,
+ "\u25ad": e.MO.BIN3,
+ "\u25ae": e.MO.BIN3,
+ "\u25af": e.MO.BIN3,
+ "\u25b0": e.MO.BIN3,
+ "\u25b1": e.MO.BIN3,
+ "\u25b2": e.MO.BIN4,
+ "\u25b4": e.MO.BIN4,
+ "\u25b6": e.MO.BIN4,
+ "\u25b7": e.MO.BIN4,
+ "\u25b8": e.MO.BIN4,
+ "\u25bc": e.MO.BIN4,
+ "\u25be": e.MO.BIN4,
+ "\u25c0": e.MO.BIN4,
+ "\u25c1": e.MO.BIN4,
+ "\u25c2": e.MO.BIN4,
+ "\u25c4": e.MO.BIN4,
+ "\u25c5": e.MO.BIN4,
+ "\u25c6": e.MO.BIN4,
+ "\u25c7": e.MO.BIN4,
+ "\u25c8": e.MO.BIN4,
+ "\u25c9": e.MO.BIN4,
+ "\u25cc": e.MO.BIN4,
+ "\u25cd": e.MO.BIN4,
+ "\u25ce": e.MO.BIN4,
+ "\u25cf": e.MO.BIN4,
+ "\u25d6": e.MO.BIN4,
+ "\u25d7": e.MO.BIN4,
+ "\u25e6": e.MO.BIN4,
+ "\u266d": e.MO.ORD02,
+ "\u266e": e.MO.ORD02,
+ "\u266f": e.MO.ORD02,
+ "\u2773": e.MO.CLOSE,
+ "\u27e7": e.MO.CLOSE,
+ "\u27e9": e.MO.CLOSE,
+ "\u27eb": e.MO.CLOSE,
+ "\u27ed": e.MO.CLOSE,
+ "\u27ef": e.MO.CLOSE,
+ "\u2980": [0, 0, n.TEXCLASS.ORD, { fence: !0, stretchy: !0 }],
+ "\u2984": e.MO.CLOSE,
+ "\u2986": e.MO.CLOSE,
+ "\u2988": e.MO.CLOSE,
+ "\u298a": e.MO.CLOSE,
+ "\u298c": e.MO.CLOSE,
+ "\u298e": e.MO.CLOSE,
+ "\u2990": e.MO.CLOSE,
+ "\u2992": e.MO.CLOSE,
+ "\u2994": e.MO.CLOSE,
+ "\u2996": e.MO.CLOSE,
+ "\u2998": e.MO.CLOSE,
+ "\u29fd": e.MO.CLOSE,
+ },
+ infix: {
+ "!=": e.MO.BIN4,
+ "#": e.MO.ORD,
+ $: e.MO.ORD,
+ "%": [3, 3, n.TEXCLASS.ORD, null],
+ "&&": e.MO.BIN4,
+ "": e.MO.ORD,
+ "*": e.MO.BIN3,
+ "**": o(1, 1),
+ "*=": e.MO.BIN4,
+ "+": e.MO.BIN4,
+ "+=": e.MO.BIN4,
+ ",": [
+ 0,
+ 3,
+ n.TEXCLASS.PUNCT,
+ { linebreakstyle: "after", separator: !0 },
+ ],
+ "-": e.MO.BIN4,
+ "-=": e.MO.BIN4,
+ "->": e.MO.BIN5,
+ ".": [0, 3, n.TEXCLASS.PUNCT, { separator: !0 }],
+ "/": e.MO.ORD11,
+ "//": o(1, 1),
+ "/=": e.MO.BIN4,
+ ":": [1, 2, n.TEXCLASS.REL, null],
+ ":=": e.MO.BIN4,
+ ";": [
+ 0,
+ 3,
+ n.TEXCLASS.PUNCT,
+ { linebreakstyle: "after", separator: !0 },
+ ],
+ "<": e.MO.REL,
+ "<=": e.MO.BIN5,
+ "<>": o(1, 1),
+ "=": e.MO.REL,
+ "==": e.MO.BIN4,
+ ">": e.MO.REL,
+ ">=": e.MO.BIN5,
+ "?": [1, 1, n.TEXCLASS.CLOSE, null],
+ "@": e.MO.ORD11,
+ "\\": e.MO.ORD,
+ "^": e.MO.ORD11,
+ _: e.MO.ORD11,
+ "|": [
+ 2,
+ 2,
+ n.TEXCLASS.ORD,
+ { fence: !0, stretchy: !0, symmetric: !0 },
+ ],
+ "||": [
+ 2,
+ 2,
+ n.TEXCLASS.BIN,
+ { fence: !0, stretchy: !0, symmetric: !0 },
+ ],
+ "|||": [
+ 2,
+ 2,
+ n.TEXCLASS.ORD,
+ { fence: !0, stretchy: !0, symmetric: !0 },
+ ],
+ "\xb1": e.MO.BIN4,
+ "\xb7": e.MO.BIN4,
+ "\xd7": e.MO.BIN4,
+ "\xf7": e.MO.BIN4,
+ "\u02b9": e.MO.ORD,
+ "\u0300": e.MO.ACCENT,
+ "\u0301": e.MO.ACCENT,
+ "\u0303": e.MO.WIDEACCENT,
+ "\u0304": e.MO.ACCENT,
+ "\u0306": e.MO.ACCENT,
+ "\u0307": e.MO.ACCENT,
+ "\u0308": e.MO.ACCENT,
+ "\u030c": e.MO.ACCENT,
+ "\u0332": e.MO.WIDEACCENT,
+ "\u0338": e.MO.REL4,
+ "\u2015": [0, 0, n.TEXCLASS.ORD, { stretchy: !0 }],
+ "\u2017": [0, 0, n.TEXCLASS.ORD, { stretchy: !0 }],
+ "\u2020": e.MO.BIN3,
+ "\u2021": e.MO.BIN3,
+ "\u2022": e.MO.BIN4,
+ "\u2026": e.MO.INNER,
+ "\u2044": e.MO.TALLBIN,
+ "\u2061": e.MO.ORD,
+ "\u2062": e.MO.ORD,
+ "\u2063": [
+ 0,
+ 0,
+ n.TEXCLASS.ORD,
+ { linebreakstyle: "after", separator: !0 },
+ ],
+ "\u2064": e.MO.ORD,
+ "\u20d7": e.MO.ACCENT,
+ "\u2111": e.MO.ORD,
+ "\u2113": e.MO.ORD,
+ "\u2118": e.MO.ORD,
+ "\u211c": e.MO.ORD,
+ "\u2190": e.MO.WIDEREL,
+ "\u2191": e.MO.RELSTRETCH,
+ "\u2192": e.MO.WIDEREL,
+ "\u2193": e.MO.RELSTRETCH,
+ "\u2194": e.MO.WIDEREL,
+ "\u2195": e.MO.RELSTRETCH,
+ "\u2196": e.MO.RELSTRETCH,
+ "\u2197": e.MO.RELSTRETCH,
+ "\u2198": e.MO.RELSTRETCH,
+ "\u2199": e.MO.RELSTRETCH,
+ "\u219a": e.MO.RELACCENT,
+ "\u219b": e.MO.RELACCENT,
+ "\u219c": e.MO.WIDEREL,
+ "\u219d": e.MO.WIDEREL,
+ "\u219e": e.MO.WIDEREL,
+ "\u219f": e.MO.WIDEREL,
+ "\u21a0": e.MO.WIDEREL,
+ "\u21a1": e.MO.RELSTRETCH,
+ "\u21a2": e.MO.WIDEREL,
+ "\u21a3": e.MO.WIDEREL,
+ "\u21a4": e.MO.WIDEREL,
+ "\u21a5": e.MO.RELSTRETCH,
+ "\u21a6": e.MO.WIDEREL,
+ "\u21a7": e.MO.RELSTRETCH,
+ "\u21a8": e.MO.RELSTRETCH,
+ "\u21a9": e.MO.WIDEREL,
+ "\u21aa": e.MO.WIDEREL,
+ "\u21ab": e.MO.WIDEREL,
+ "\u21ac": e.MO.WIDEREL,
+ "\u21ad": e.MO.WIDEREL,
+ "\u21ae": e.MO.RELACCENT,
+ "\u21af": e.MO.RELSTRETCH,
+ "\u21b0": e.MO.RELSTRETCH,
+ "\u21b1": e.MO.RELSTRETCH,
+ "\u21b2": e.MO.RELSTRETCH,
+ "\u21b3": e.MO.RELSTRETCH,
+ "\u21b4": e.MO.RELSTRETCH,
+ "\u21b5": e.MO.RELSTRETCH,
+ "\u21b6": e.MO.RELACCENT,
+ "\u21b7": e.MO.RELACCENT,
+ "\u21b8": e.MO.REL,
+ "\u21b9": e.MO.WIDEREL,
+ "\u21ba": e.MO.REL,
+ "\u21bb": e.MO.REL,
+ "\u21bc": e.MO.WIDEREL,
+ "\u21bd": e.MO.WIDEREL,
+ "\u21be": e.MO.RELSTRETCH,
+ "\u21bf": e.MO.RELSTRETCH,
+ "\u21c0": e.MO.WIDEREL,
+ "\u21c1": e.MO.WIDEREL,
+ "\u21c2": e.MO.RELSTRETCH,
+ "\u21c3": e.MO.RELSTRETCH,
+ "\u21c4": e.MO.WIDEREL,
+ "\u21c5": e.MO.RELSTRETCH,
+ "\u21c6": e.MO.WIDEREL,
+ "\u21c7": e.MO.WIDEREL,
+ "\u21c8": e.MO.RELSTRETCH,
+ "\u21c9": e.MO.WIDEREL,
+ "\u21ca": e.MO.RELSTRETCH,
+ "\u21cb": e.MO.WIDEREL,
+ "\u21cc": e.MO.WIDEREL,
+ "\u21cd": e.MO.RELACCENT,
+ "\u21ce": e.MO.RELACCENT,
+ "\u21cf": e.MO.RELACCENT,
+ "\u21d0": e.MO.WIDEREL,
+ "\u21d1": e.MO.RELSTRETCH,
+ "\u21d2": e.MO.WIDEREL,
+ "\u21d3": e.MO.RELSTRETCH,
+ "\u21d4": e.MO.WIDEREL,
+ "\u21d5": e.MO.RELSTRETCH,
+ "\u21d6": e.MO.RELSTRETCH,
+ "\u21d7": e.MO.RELSTRETCH,
+ "\u21d8": e.MO.RELSTRETCH,
+ "\u21d9": e.MO.RELSTRETCH,
+ "\u21da": e.MO.WIDEREL,
+ "\u21db": e.MO.WIDEREL,
+ "\u21dc": e.MO.WIDEREL,
+ "\u21dd": e.MO.WIDEREL,
+ "\u21de": e.MO.REL,
+ "\u21df": e.MO.REL,
+ "\u21e0": e.MO.WIDEREL,
+ "\u21e1": e.MO.RELSTRETCH,
+ "\u21e2": e.MO.WIDEREL,
+ "\u21e3": e.MO.RELSTRETCH,
+ "\u21e4": e.MO.WIDEREL,
+ "\u21e5": e.MO.WIDEREL,
+ "\u21e6": e.MO.WIDEREL,
+ "\u21e7": e.MO.RELSTRETCH,
+ "\u21e8": e.MO.WIDEREL,
+ "\u21e9": e.MO.RELSTRETCH,
+ "\u21ea": e.MO.RELSTRETCH,
+ "\u21eb": e.MO.RELSTRETCH,
+ "\u21ec": e.MO.RELSTRETCH,
+ "\u21ed": e.MO.RELSTRETCH,
+ "\u21ee": e.MO.RELSTRETCH,
+ "\u21ef": e.MO.RELSTRETCH,
+ "\u21f0": e.MO.WIDEREL,
+ "\u21f1": e.MO.REL,
+ "\u21f2": e.MO.REL,
+ "\u21f3": e.MO.RELSTRETCH,
+ "\u21f4": e.MO.RELACCENT,
+ "\u21f5": e.MO.RELSTRETCH,
+ "\u21f6": e.MO.WIDEREL,
+ "\u21f7": e.MO.RELACCENT,
+ "\u21f8": e.MO.RELACCENT,
+ "\u21f9": e.MO.RELACCENT,
+ "\u21fa": e.MO.RELACCENT,
+ "\u21fb": e.MO.RELACCENT,
+ "\u21fc": e.MO.RELACCENT,
+ "\u21fd": e.MO.WIDEREL,
+ "\u21fe": e.MO.WIDEREL,
+ "\u21ff": e.MO.WIDEREL,
+ "\u2201": o(1, 2, n.TEXCLASS.ORD),
+ "\u2205": e.MO.ORD,
+ "\u2206": e.MO.BIN3,
+ "\u2208": e.MO.REL,
+ "\u2209": e.MO.REL,
+ "\u220a": e.MO.REL,
+ "\u220b": e.MO.REL,
+ "\u220c": e.MO.REL,
+ "\u220d": e.MO.REL,
+ "\u220e": e.MO.BIN3,
+ "\u2212": e.MO.BIN4,
+ "\u2213": e.MO.BIN4,
+ "\u2214": e.MO.BIN4,
+ "\u2215": e.MO.TALLBIN,
+ "\u2216": e.MO.BIN4,
+ "\u2217": e.MO.BIN4,
+ "\u2218": e.MO.BIN4,
+ "\u2219": e.MO.BIN4,
+ "\u221d": e.MO.REL,
+ "\u221e": e.MO.ORD,
+ "\u221f": e.MO.REL,
+ "\u2223": e.MO.REL,
+ "\u2224": e.MO.REL,
+ "\u2225": e.MO.REL,
+ "\u2226": e.MO.REL,
+ "\u2227": e.MO.BIN4,
+ "\u2228": e.MO.BIN4,
+ "\u2229": e.MO.BIN4,
+ "\u222a": e.MO.BIN4,
+ "\u2234": e.MO.REL,
+ "\u2235": e.MO.REL,
+ "\u2236": e.MO.REL,
+ "\u2237": e.MO.REL,
+ "\u2238": e.MO.BIN4,
+ "\u2239": e.MO.REL,
+ "\u223a": e.MO.BIN4,
+ "\u223b": e.MO.REL,
+ "\u223c": e.MO.REL,
+ "\u223d": e.MO.REL,
+ "\u223d\u0331": e.MO.BIN3,
+ "\u223e": e.MO.REL,
+ "\u223f": e.MO.BIN3,
+ "\u2240": e.MO.BIN4,
+ "\u2241": e.MO.REL,
+ "\u2242": e.MO.REL,
+ "\u2242\u0338": e.MO.REL,
+ "\u2243": e.MO.REL,
+ "\u2244": e.MO.REL,
+ "\u2245": e.MO.REL,
+ "\u2246": e.MO.REL,
+ "\u2247": e.MO.REL,
+ "\u2248": e.MO.REL,
+ "\u2249": e.MO.REL,
+ "\u224a": e.MO.REL,
+ "\u224b": e.MO.REL,
+ "\u224c": e.MO.REL,
+ "\u224d": e.MO.REL,
+ "\u224e": e.MO.REL,
+ "\u224e\u0338": e.MO.REL,
+ "\u224f": e.MO.REL,
+ "\u224f\u0338": e.MO.REL,
+ "\u2250": e.MO.REL,
+ "\u2251": e.MO.REL,
+ "\u2252": e.MO.REL,
+ "\u2253": e.MO.REL,
+ "\u2254": e.MO.REL,
+ "\u2255": e.MO.REL,
+ "\u2256": e.MO.REL,
+ "\u2257": e.MO.REL,
+ "\u2258": e.MO.REL,
+ "\u2259": e.MO.REL,
+ "\u225a": e.MO.REL,
+ "\u225c": e.MO.REL,
+ "\u225d": e.MO.REL,
+ "\u225e": e.MO.REL,
+ "\u225f": e.MO.REL,
+ "\u2260": e.MO.REL,
+ "\u2261": e.MO.REL,
+ "\u2262": e.MO.REL,
+ "\u2263": e.MO.REL,
+ "\u2264": e.MO.REL,
+ "\u2265": e.MO.REL,
+ "\u2266": e.MO.REL,
+ "\u2266\u0338": e.MO.REL,
+ "\u2267": e.MO.REL,
+ "\u2268": e.MO.REL,
+ "\u2269": e.MO.REL,
+ "\u226a": e.MO.REL,
+ "\u226a\u0338": e.MO.REL,
+ "\u226b": e.MO.REL,
+ "\u226b\u0338": e.MO.REL,
+ "\u226c": e.MO.REL,
+ "\u226d": e.MO.REL,
+ "\u226e": e.MO.REL,
+ "\u226f": e.MO.REL,
+ "\u2270": e.MO.REL,
+ "\u2271": e.MO.REL,
+ "\u2272": e.MO.REL,
+ "\u2273": e.MO.REL,
+ "\u2274": e.MO.REL,
+ "\u2275": e.MO.REL,
+ "\u2276": e.MO.REL,
+ "\u2277": e.MO.REL,
+ "\u2278": e.MO.REL,
+ "\u2279": e.MO.REL,
+ "\u227a": e.MO.REL,
+ "\u227b": e.MO.REL,
+ "\u227c": e.MO.REL,
+ "\u227d": e.MO.REL,
+ "\u227e": e.MO.REL,
+ "\u227f": e.MO.REL,
+ "\u227f\u0338": e.MO.REL,
+ "\u2280": e.MO.REL,
+ "\u2281": e.MO.REL,
+ "\u2282": e.MO.REL,
+ "\u2282\u20d2": e.MO.REL,
+ "\u2283": e.MO.REL,
+ "\u2283\u20d2": e.MO.REL,
+ "\u2284": e.MO.REL,
+ "\u2285": e.MO.REL,
+ "\u2286": e.MO.REL,
+ "\u2287": e.MO.REL,
+ "\u2288": e.MO.REL,
+ "\u2289": e.MO.REL,
+ "\u228a": e.MO.REL,
+ "\u228b": e.MO.REL,
+ "\u228c": e.MO.BIN4,
+ "\u228d": e.MO.BIN4,
+ "\u228e": e.MO.BIN4,
+ "\u228f": e.MO.REL,
+ "\u228f\u0338": e.MO.REL,
+ "\u2290": e.MO.REL,
+ "\u2290\u0338": e.MO.REL,
+ "\u2291": e.MO.REL,
+ "\u2292": e.MO.REL,
+ "\u2293": e.MO.BIN4,
+ "\u2294": e.MO.BIN4,
+ "\u2295": e.MO.BIN4,
+ "\u2296": e.MO.BIN4,
+ "\u2297": e.MO.BIN4,
+ "\u2298": e.MO.BIN4,
+ "\u2299": e.MO.BIN4,
+ "\u229a": e.MO.BIN4,
+ "\u229b": e.MO.BIN4,
+ "\u229c": e.MO.BIN4,
+ "\u229d": e.MO.BIN4,
+ "\u229e": e.MO.BIN4,
+ "\u229f": e.MO.BIN4,
+ "\u22a0": e.MO.BIN4,
+ "\u22a1": e.MO.BIN4,
+ "\u22a2": e.MO.REL,
+ "\u22a3": e.MO.REL,
+ "\u22a4": e.MO.ORD55,
+ "\u22a5": e.MO.REL,
+ "\u22a6": e.MO.REL,
+ "\u22a7": e.MO.REL,
+ "\u22a8": e.MO.REL,
+ "\u22a9": e.MO.REL,
+ "\u22aa": e.MO.REL,
+ "\u22ab": e.MO.REL,
+ "\u22ac": e.MO.REL,
+ "\u22ad": e.MO.REL,
+ "\u22ae": e.MO.REL,
+ "\u22af": e.MO.REL,
+ "\u22b0": e.MO.REL,
+ "\u22b1": e.MO.REL,
+ "\u22b2": e.MO.REL,
+ "\u22b3": e.MO.REL,
+ "\u22b4": e.MO.REL,
+ "\u22b5": e.MO.REL,
+ "\u22b6": e.MO.REL,
+ "\u22b7": e.MO.REL,
+ "\u22b8": e.MO.REL,
+ "\u22b9": e.MO.REL,
+ "\u22ba": e.MO.BIN4,
+ "\u22bb": e.MO.BIN4,
+ "\u22bc": e.MO.BIN4,
+ "\u22bd": e.MO.BIN4,
+ "\u22be": e.MO.BIN3,
+ "\u22bf": e.MO.BIN3,
+ "\u22c4": e.MO.BIN4,
+ "\u22c5": e.MO.BIN4,
+ "\u22c6": e.MO.BIN4,
+ "\u22c7": e.MO.BIN4,
+ "\u22c8": e.MO.REL,
+ "\u22c9": e.MO.BIN4,
+ "\u22ca": e.MO.BIN4,
+ "\u22cb": e.MO.BIN4,
+ "\u22cc": e.MO.BIN4,
+ "\u22cd": e.MO.REL,
+ "\u22ce": e.MO.BIN4,
+ "\u22cf": e.MO.BIN4,
+ "\u22d0": e.MO.REL,
+ "\u22d1": e.MO.REL,
+ "\u22d2": e.MO.BIN4,
+ "\u22d3": e.MO.BIN4,
+ "\u22d4": e.MO.REL,
+ "\u22d5": e.MO.REL,
+ "\u22d6": e.MO.REL,
+ "\u22d7": e.MO.REL,
+ "\u22d8": e.MO.REL,
+ "\u22d9": e.MO.REL,
+ "\u22da": e.MO.REL,
+ "\u22db": e.MO.REL,
+ "\u22dc": e.MO.REL,
+ "\u22dd": e.MO.REL,
+ "\u22de": e.MO.REL,
+ "\u22df": e.MO.REL,
+ "\u22e0": e.MO.REL,
+ "\u22e1": e.MO.REL,
+ "\u22e2": e.MO.REL,
+ "\u22e3": e.MO.REL,
+ "\u22e4": e.MO.REL,
+ "\u22e5": e.MO.REL,
+ "\u22e6": e.MO.REL,
+ "\u22e7": e.MO.REL,
+ "\u22e8": e.MO.REL,
+ "\u22e9": e.MO.REL,
+ "\u22ea": e.MO.REL,
+ "\u22eb": e.MO.REL,
+ "\u22ec": e.MO.REL,
+ "\u22ed": e.MO.REL,
+ "\u22ee": e.MO.ORD55,
+ "\u22ef": e.MO.INNER,
+ "\u22f0": e.MO.REL,
+ "\u22f1": [5, 5, n.TEXCLASS.INNER, null],
+ "\u22f2": e.MO.REL,
+ "\u22f3": e.MO.REL,
+ "\u22f4": e.MO.REL,
+ "\u22f5": e.MO.REL,
+ "\u22f6": e.MO.REL,
+ "\u22f7": e.MO.REL,
+ "\u22f8": e.MO.REL,
+ "\u22f9": e.MO.REL,
+ "\u22fa": e.MO.REL,
+ "\u22fb": e.MO.REL,
+ "\u22fc": e.MO.REL,
+ "\u22fd": e.MO.REL,
+ "\u22fe": e.MO.REL,
+ "\u22ff": e.MO.REL,
+ "\u2305": e.MO.BIN3,
+ "\u2306": e.MO.BIN3,
+ "\u2322": e.MO.REL4,
+ "\u2323": e.MO.REL4,
+ "\u2329": e.MO.OPEN,
+ "\u232a": e.MO.CLOSE,
+ "\u23aa": e.MO.ORD,
+ "\u23af": [0, 0, n.TEXCLASS.ORD, { stretchy: !0 }],
+ "\u23b0": e.MO.OPEN,
+ "\u23b1": e.MO.CLOSE,
+ "\u2500": e.MO.ORD,
+ "\u25b3": e.MO.BIN4,
+ "\u25b5": e.MO.BIN4,
+ "\u25b9": e.MO.BIN4,
+ "\u25bd": e.MO.BIN4,
+ "\u25bf": e.MO.BIN4,
+ "\u25c3": e.MO.BIN4,
+ "\u25ef": e.MO.BIN3,
+ "\u2660": e.MO.ORD,
+ "\u2661": e.MO.ORD,
+ "\u2662": e.MO.ORD,
+ "\u2663": e.MO.ORD,
+ "\u2758": e.MO.REL,
+ "\u27f0": e.MO.RELSTRETCH,
+ "\u27f1": e.MO.RELSTRETCH,
+ "\u27f5": e.MO.WIDEREL,
+ "\u27f6": e.MO.WIDEREL,
+ "\u27f7": e.MO.WIDEREL,
+ "\u27f8": e.MO.WIDEREL,
+ "\u27f9": e.MO.WIDEREL,
+ "\u27fa": e.MO.WIDEREL,
+ "\u27fb": e.MO.WIDEREL,
+ "\u27fc": e.MO.WIDEREL,
+ "\u27fd": e.MO.WIDEREL,
+ "\u27fe": e.MO.WIDEREL,
+ "\u27ff": e.MO.WIDEREL,
+ "\u2900": e.MO.RELACCENT,
+ "\u2901": e.MO.RELACCENT,
+ "\u2902": e.MO.RELACCENT,
+ "\u2903": e.MO.RELACCENT,
+ "\u2904": e.MO.RELACCENT,
+ "\u2905": e.MO.RELACCENT,
+ "\u2906": e.MO.RELACCENT,
+ "\u2907": e.MO.RELACCENT,
+ "\u2908": e.MO.REL,
+ "\u2909": e.MO.REL,
+ "\u290a": e.MO.RELSTRETCH,
+ "\u290b": e.MO.RELSTRETCH,
+ "\u290c": e.MO.WIDEREL,
+ "\u290d": e.MO.WIDEREL,
+ "\u290e": e.MO.WIDEREL,
+ "\u290f": e.MO.WIDEREL,
+ "\u2910": e.MO.WIDEREL,
+ "\u2911": e.MO.RELACCENT,
+ "\u2912": e.MO.RELSTRETCH,
+ "\u2913": e.MO.RELSTRETCH,
+ "\u2914": e.MO.RELACCENT,
+ "\u2915": e.MO.RELACCENT,
+ "\u2916": e.MO.RELACCENT,
+ "\u2917": e.MO.RELACCENT,
+ "\u2918": e.MO.RELACCENT,
+ "\u2919": e.MO.RELACCENT,
+ "\u291a": e.MO.RELACCENT,
+ "\u291b": e.MO.RELACCENT,
+ "\u291c": e.MO.RELACCENT,
+ "\u291d": e.MO.RELACCENT,
+ "\u291e": e.MO.RELACCENT,
+ "\u291f": e.MO.RELACCENT,
+ "\u2920": e.MO.RELACCENT,
+ "\u2921": e.MO.RELSTRETCH,
+ "\u2922": e.MO.RELSTRETCH,
+ "\u2923": e.MO.REL,
+ "\u2924": e.MO.REL,
+ "\u2925": e.MO.REL,
+ "\u2926": e.MO.REL,
+ "\u2927": e.MO.REL,
+ "\u2928": e.MO.REL,
+ "\u2929": e.MO.REL,
+ "\u292a": e.MO.REL,
+ "\u292b": e.MO.REL,
+ "\u292c": e.MO.REL,
+ "\u292d": e.MO.REL,
+ "\u292e": e.MO.REL,
+ "\u292f": e.MO.REL,
+ "\u2930": e.MO.REL,
+ "\u2931": e.MO.REL,
+ "\u2932": e.MO.REL,
+ "\u2933": e.MO.RELACCENT,
+ "\u2934": e.MO.REL,
+ "\u2935": e.MO.REL,
+ "\u2936": e.MO.REL,
+ "\u2937": e.MO.REL,
+ "\u2938": e.MO.REL,
+ "\u2939": e.MO.REL,
+ "\u293a": e.MO.RELACCENT,
+ "\u293b": e.MO.RELACCENT,
+ "\u293c": e.MO.RELACCENT,
+ "\u293d": e.MO.RELACCENT,
+ "\u293e": e.MO.REL,
+ "\u293f": e.MO.REL,
+ "\u2940": e.MO.REL,
+ "\u2941": e.MO.REL,
+ "\u2942": e.MO.RELACCENT,
+ "\u2943": e.MO.RELACCENT,
+ "\u2944": e.MO.RELACCENT,
+ "\u2945": e.MO.RELACCENT,
+ "\u2946": e.MO.RELACCENT,
+ "\u2947": e.MO.RELACCENT,
+ "\u2948": e.MO.RELACCENT,
+ "\u2949": e.MO.REL,
+ "\u294a": e.MO.RELACCENT,
+ "\u294b": e.MO.RELACCENT,
+ "\u294c": e.MO.REL,
+ "\u294d": e.MO.REL,
+ "\u294e": e.MO.WIDEREL,
+ "\u294f": e.MO.RELSTRETCH,
+ "\u2950": e.MO.WIDEREL,
+ "\u2951": e.MO.RELSTRETCH,
+ "\u2952": e.MO.WIDEREL,
+ "\u2953": e.MO.WIDEREL,
+ "\u2954": e.MO.RELSTRETCH,
+ "\u2955": e.MO.RELSTRETCH,
+ "\u2956": e.MO.RELSTRETCH,
+ "\u2957": e.MO.RELSTRETCH,
+ "\u2958": e.MO.RELSTRETCH,
+ "\u2959": e.MO.RELSTRETCH,
+ "\u295a": e.MO.WIDEREL,
+ "\u295b": e.MO.WIDEREL,
+ "\u295c": e.MO.RELSTRETCH,
+ "\u295d": e.MO.RELSTRETCH,
+ "\u295e": e.MO.WIDEREL,
+ "\u295f": e.MO.WIDEREL,
+ "\u2960": e.MO.RELSTRETCH,
+ "\u2961": e.MO.RELSTRETCH,
+ "\u2962": e.MO.RELACCENT,
+ "\u2963": e.MO.REL,
+ "\u2964": e.MO.RELACCENT,
+ "\u2965": e.MO.REL,
+ "\u2966": e.MO.RELACCENT,
+ "\u2967": e.MO.RELACCENT,
+ "\u2968": e.MO.RELACCENT,
+ "\u2969": e.MO.RELACCENT,
+ "\u296a": e.MO.RELACCENT,
+ "\u296b": e.MO.RELACCENT,
+ "\u296c": e.MO.RELACCENT,
+ "\u296d": e.MO.RELACCENT,
+ "\u296e": e.MO.RELSTRETCH,
+ "\u296f": e.MO.RELSTRETCH,
+ "\u2970": e.MO.RELACCENT,
+ "\u2971": e.MO.RELACCENT,
+ "\u2972": e.MO.RELACCENT,
+ "\u2973": e.MO.RELACCENT,
+ "\u2974": e.MO.RELACCENT,
+ "\u2975": e.MO.RELACCENT,
+ "\u2976": e.MO.RELACCENT,
+ "\u2977": e.MO.RELACCENT,
+ "\u2978": e.MO.RELACCENT,
+ "\u2979": e.MO.RELACCENT,
+ "\u297a": e.MO.RELACCENT,
+ "\u297b": e.MO.RELACCENT,
+ "\u297c": e.MO.RELACCENT,
+ "\u297d": e.MO.RELACCENT,
+ "\u297e": e.MO.REL,
+ "\u297f": e.MO.REL,
+ "\u2981": e.MO.BIN3,
+ "\u2982": e.MO.BIN3,
+ "\u2999": e.MO.BIN3,
+ "\u299a": e.MO.BIN3,
+ "\u299b": e.MO.BIN3,
+ "\u299c": e.MO.BIN3,
+ "\u299d": e.MO.BIN3,
+ "\u299e": e.MO.BIN3,
+ "\u299f": e.MO.BIN3,
+ "\u29a0": e.MO.BIN3,
+ "\u29a1": e.MO.BIN3,
+ "\u29a2": e.MO.BIN3,
+ "\u29a3": e.MO.BIN3,
+ "\u29a4": e.MO.BIN3,
+ "\u29a5": e.MO.BIN3,
+ "\u29a6": e.MO.BIN3,
+ "\u29a7": e.MO.BIN3,
+ "\u29a8": e.MO.BIN3,
+ "\u29a9": e.MO.BIN3,
+ "\u29aa": e.MO.BIN3,
+ "\u29ab": e.MO.BIN3,
+ "\u29ac": e.MO.BIN3,
+ "\u29ad": e.MO.BIN3,
+ "\u29ae": e.MO.BIN3,
+ "\u29af": e.MO.BIN3,
+ "\u29b0": e.MO.BIN3,
+ "\u29b1": e.MO.BIN3,
+ "\u29b2": e.MO.BIN3,
+ "\u29b3": e.MO.BIN3,
+ "\u29b4": e.MO.BIN3,
+ "\u29b5": e.MO.BIN3,
+ "\u29b6": e.MO.BIN4,
+ "\u29b7": e.MO.BIN4,
+ "\u29b8": e.MO.BIN4,
+ "\u29b9": e.MO.BIN4,
+ "\u29ba": e.MO.BIN4,
+ "\u29bb": e.MO.BIN4,
+ "\u29bc": e.MO.BIN4,
+ "\u29bd": e.MO.BIN4,
+ "\u29be": e.MO.BIN4,
+ "\u29bf": e.MO.BIN4,
+ "\u29c0": e.MO.REL,
+ "\u29c1": e.MO.REL,
+ "\u29c2": e.MO.BIN3,
+ "\u29c3": e.MO.BIN3,
+ "\u29c4": e.MO.BIN4,
+ "\u29c5": e.MO.BIN4,
+ "\u29c6": e.MO.BIN4,
+ "\u29c7": e.MO.BIN4,
+ "\u29c8": e.MO.BIN4,
+ "\u29c9": e.MO.BIN3,
+ "\u29ca": e.MO.BIN3,
+ "\u29cb": e.MO.BIN3,
+ "\u29cc": e.MO.BIN3,
+ "\u29cd": e.MO.BIN3,
+ "\u29ce": e.MO.REL,
+ "\u29cf": e.MO.REL,
+ "\u29cf\u0338": e.MO.REL,
+ "\u29d0": e.MO.REL,
+ "\u29d0\u0338": e.MO.REL,
+ "\u29d1": e.MO.REL,
+ "\u29d2": e.MO.REL,
+ "\u29d3": e.MO.REL,
+ "\u29d4": e.MO.REL,
+ "\u29d5": e.MO.REL,
+ "\u29d6": e.MO.BIN4,
+ "\u29d7": e.MO.BIN4,
+ "\u29d8": e.MO.BIN3,
+ "\u29d9": e.MO.BIN3,
+ "\u29db": e.MO.BIN3,
+ "\u29dc": e.MO.BIN3,
+ "\u29dd": e.MO.BIN3,
+ "\u29de": e.MO.REL,
+ "\u29df": e.MO.BIN3,
+ "\u29e0": e.MO.BIN3,
+ "\u29e1": e.MO.REL,
+ "\u29e2": e.MO.BIN4,
+ "\u29e3": e.MO.REL,
+ "\u29e4": e.MO.REL,
+ "\u29e5": e.MO.REL,
+ "\u29e6": e.MO.REL,
+ "\u29e7": e.MO.BIN3,
+ "\u29e8": e.MO.BIN3,
+ "\u29e9": e.MO.BIN3,
+ "\u29ea": e.MO.BIN3,
+ "\u29eb": e.MO.BIN3,
+ "\u29ec": e.MO.BIN3,
+ "\u29ed": e.MO.BIN3,
+ "\u29ee": e.MO.BIN3,
+ "\u29ef": e.MO.BIN3,
+ "\u29f0": e.MO.BIN3,
+ "\u29f1": e.MO.BIN3,
+ "\u29f2": e.MO.BIN3,
+ "\u29f3": e.MO.BIN3,
+ "\u29f4": e.MO.REL,
+ "\u29f5": e.MO.BIN4,
+ "\u29f6": e.MO.BIN4,
+ "\u29f7": e.MO.BIN4,
+ "\u29f8": e.MO.BIN3,
+ "\u29f9": e.MO.BIN3,
+ "\u29fa": e.MO.BIN3,
+ "\u29fb": e.MO.BIN3,
+ "\u29fe": e.MO.BIN4,
+ "\u29ff": e.MO.BIN4,
+ "\u2a1d": e.MO.BIN3,
+ "\u2a1e": e.MO.BIN3,
+ "\u2a1f": e.MO.BIN3,
+ "\u2a20": e.MO.BIN3,
+ "\u2a21": e.MO.BIN3,
+ "\u2a22": e.MO.BIN4,
+ "\u2a23": e.MO.BIN4,
+ "\u2a24": e.MO.BIN4,
+ "\u2a25": e.MO.BIN4,
+ "\u2a26": e.MO.BIN4,
+ "\u2a27": e.MO.BIN4,
+ "\u2a28": e.MO.BIN4,
+ "\u2a29": e.MO.BIN4,
+ "\u2a2a": e.MO.BIN4,
+ "\u2a2b": e.MO.BIN4,
+ "\u2a2c": e.MO.BIN4,
+ "\u2a2d": e.MO.BIN4,
+ "\u2a2e": e.MO.BIN4,
+ "\u2a2f": e.MO.BIN4,
+ "\u2a30": e.MO.BIN4,
+ "\u2a31": e.MO.BIN4,
+ "\u2a32": e.MO.BIN4,
+ "\u2a33": e.MO.BIN4,
+ "\u2a34": e.MO.BIN4,
+ "\u2a35": e.MO.BIN4,
+ "\u2a36": e.MO.BIN4,
+ "\u2a37": e.MO.BIN4,
+ "\u2a38": e.MO.BIN4,
+ "\u2a39": e.MO.BIN4,
+ "\u2a3a": e.MO.BIN4,
+ "\u2a3b": e.MO.BIN4,
+ "\u2a3c": e.MO.BIN4,
+ "\u2a3d": e.MO.BIN4,
+ "\u2a3e": e.MO.BIN4,
+ "\u2a3f": e.MO.BIN4,
+ "\u2a40": e.MO.BIN4,
+ "\u2a41": e.MO.BIN4,
+ "\u2a42": e.MO.BIN4,
+ "\u2a43": e.MO.BIN4,
+ "\u2a44": e.MO.BIN4,
+ "\u2a45": e.MO.BIN4,
+ "\u2a46": e.MO.BIN4,
+ "\u2a47": e.MO.BIN4,
+ "\u2a48": e.MO.BIN4,
+ "\u2a49": e.MO.BIN4,
+ "\u2a4a": e.MO.BIN4,
+ "\u2a4b": e.MO.BIN4,
+ "\u2a4c": e.MO.BIN4,
+ "\u2a4d": e.MO.BIN4,
+ "\u2a4e": e.MO.BIN4,
+ "\u2a4f": e.MO.BIN4,
+ "\u2a50": e.MO.BIN4,
+ "\u2a51": e.MO.BIN4,
+ "\u2a52": e.MO.BIN4,
+ "\u2a53": e.MO.BIN4,
+ "\u2a54": e.MO.BIN4,
+ "\u2a55": e.MO.BIN4,
+ "\u2a56": e.MO.BIN4,
+ "\u2a57": e.MO.BIN4,
+ "\u2a58": e.MO.BIN4,
+ "\u2a59": e.MO.REL,
+ "\u2a5a": e.MO.BIN4,
+ "\u2a5b": e.MO.BIN4,
+ "\u2a5c": e.MO.BIN4,
+ "\u2a5d": e.MO.BIN4,
+ "\u2a5e": e.MO.BIN4,
+ "\u2a5f": e.MO.BIN4,
+ "\u2a60": e.MO.BIN4,
+ "\u2a61": e.MO.BIN4,
+ "\u2a62": e.MO.BIN4,
+ "\u2a63": e.MO.BIN4,
+ "\u2a64": e.MO.BIN4,
+ "\u2a65": e.MO.BIN4,
+ "\u2a66": e.MO.REL,
+ "\u2a67": e.MO.REL,
+ "\u2a68": e.MO.REL,
+ "\u2a69": e.MO.REL,
+ "\u2a6a": e.MO.REL,
+ "\u2a6b": e.MO.REL,
+ "\u2a6c": e.MO.REL,
+ "\u2a6d": e.MO.REL,
+ "\u2a6e": e.MO.REL,
+ "\u2a6f": e.MO.REL,
+ "\u2a70": e.MO.REL,
+ "\u2a71": e.MO.BIN4,
+ "\u2a72": e.MO.BIN4,
+ "\u2a73": e.MO.REL,
+ "\u2a74": e.MO.REL,
+ "\u2a75": e.MO.REL,
+ "\u2a76": e.MO.REL,
+ "\u2a77": e.MO.REL,
+ "\u2a78": e.MO.REL,
+ "\u2a79": e.MO.REL,
+ "\u2a7a": e.MO.REL,
+ "\u2a7b": e.MO.REL,
+ "\u2a7c": e.MO.REL,
+ "\u2a7d": e.MO.REL,
+ "\u2a7d\u0338": e.MO.REL,
+ "\u2a7e": e.MO.REL,
+ "\u2a7e\u0338": e.MO.REL,
+ "\u2a7f": e.MO.REL,
+ "\u2a80": e.MO.REL,
+ "\u2a81": e.MO.REL,
+ "\u2a82": e.MO.REL,
+ "\u2a83": e.MO.REL,
+ "\u2a84": e.MO.REL,
+ "\u2a85": e.MO.REL,
+ "\u2a86": e.MO.REL,
+ "\u2a87": e.MO.REL,
+ "\u2a88": e.MO.REL,
+ "\u2a89": e.MO.REL,
+ "\u2a8a": e.MO.REL,
+ "\u2a8b": e.MO.REL,
+ "\u2a8c": e.MO.REL,
+ "\u2a8d": e.MO.REL,
+ "\u2a8e": e.MO.REL,
+ "\u2a8f": e.MO.REL,
+ "\u2a90": e.MO.REL,
+ "\u2a91": e.MO.REL,
+ "\u2a92": e.MO.REL,
+ "\u2a93": e.MO.REL,
+ "\u2a94": e.MO.REL,
+ "\u2a95": e.MO.REL,
+ "\u2a96": e.MO.REL,
+ "\u2a97": e.MO.REL,
+ "\u2a98": e.MO.REL,
+ "\u2a99": e.MO.REL,
+ "\u2a9a": e.MO.REL,
+ "\u2a9b": e.MO.REL,
+ "\u2a9c": e.MO.REL,
+ "\u2a9d": e.MO.REL,
+ "\u2a9e": e.MO.REL,
+ "\u2a9f": e.MO.REL,
+ "\u2aa0": e.MO.REL,
+ "\u2aa1": e.MO.REL,
+ "\u2aa1\u0338": e.MO.REL,
+ "\u2aa2": e.MO.REL,
+ "\u2aa2\u0338": e.MO.REL,
+ "\u2aa3": e.MO.REL,
+ "\u2aa4": e.MO.REL,
+ "\u2aa5": e.MO.REL,
+ "\u2aa6": e.MO.REL,
+ "\u2aa7": e.MO.REL,
+ "\u2aa8": e.MO.REL,
+ "\u2aa9": e.MO.REL,
+ "\u2aaa": e.MO.REL,
+ "\u2aab": e.MO.REL,
+ "\u2aac": e.MO.REL,
+ "\u2aad": e.MO.REL,
+ "\u2aae": e.MO.REL,
+ "\u2aaf": e.MO.REL,
+ "\u2aaf\u0338": e.MO.REL,
+ "\u2ab0": e.MO.REL,
+ "\u2ab0\u0338": e.MO.REL,
+ "\u2ab1": e.MO.REL,
+ "\u2ab2": e.MO.REL,
+ "\u2ab3": e.MO.REL,
+ "\u2ab4": e.MO.REL,
+ "\u2ab5": e.MO.REL,
+ "\u2ab6": e.MO.REL,
+ "\u2ab7": e.MO.REL,
+ "\u2ab8": e.MO.REL,
+ "\u2ab9": e.MO.REL,
+ "\u2aba": e.MO.REL,
+ "\u2abb": e.MO.REL,
+ "\u2abc": e.MO.REL,
+ "\u2abd": e.MO.REL,
+ "\u2abe": e.MO.REL,
+ "\u2abf": e.MO.REL,
+ "\u2ac0": e.MO.REL,
+ "\u2ac1": e.MO.REL,
+ "\u2ac2": e.MO.REL,
+ "\u2ac3": e.MO.REL,
+ "\u2ac4": e.MO.REL,
+ "\u2ac5": e.MO.REL,
+ "\u2ac6": e.MO.REL,
+ "\u2ac7": e.MO.REL,
+ "\u2ac8": e.MO.REL,
+ "\u2ac9": e.MO.REL,
+ "\u2aca": e.MO.REL,
+ "\u2acb": e.MO.REL,
+ "\u2acc": e.MO.REL,
+ "\u2acd": e.MO.REL,
+ "\u2ace": e.MO.REL,
+ "\u2acf": e.MO.REL,
+ "\u2ad0": e.MO.REL,
+ "\u2ad1": e.MO.REL,
+ "\u2ad2": e.MO.REL,
+ "\u2ad3": e.MO.REL,
+ "\u2ad4": e.MO.REL,
+ "\u2ad5": e.MO.REL,
+ "\u2ad6": e.MO.REL,
+ "\u2ad7": e.MO.REL,
+ "\u2ad8": e.MO.REL,
+ "\u2ad9": e.MO.REL,
+ "\u2ada": e.MO.REL,
+ "\u2adb": e.MO.REL,
+ "\u2adc": e.MO.REL,
+ "\u2add": e.MO.REL,
+ "\u2ade": e.MO.REL,
+ "\u2adf": e.MO.REL,
+ "\u2ae0": e.MO.REL,
+ "\u2ae1": e.MO.REL,
+ "\u2ae2": e.MO.REL,
+ "\u2ae3": e.MO.REL,
+ "\u2ae4": e.MO.REL,
+ "\u2ae5": e.MO.REL,
+ "\u2ae6": e.MO.REL,
+ "\u2ae7": e.MO.REL,
+ "\u2ae8": e.MO.REL,
+ "\u2ae9": e.MO.REL,
+ "\u2aea": e.MO.REL,
+ "\u2aeb": e.MO.REL,
+ "\u2aec": e.MO.REL,
+ "\u2aed": e.MO.REL,
+ "\u2aee": e.MO.REL,
+ "\u2aef": e.MO.REL,
+ "\u2af0": e.MO.REL,
+ "\u2af1": e.MO.REL,
+ "\u2af2": e.MO.REL,
+ "\u2af3": e.MO.REL,
+ "\u2af4": e.MO.BIN4,
+ "\u2af5": e.MO.BIN4,
+ "\u2af6": e.MO.BIN4,
+ "\u2af7": e.MO.REL,
+ "\u2af8": e.MO.REL,
+ "\u2af9": e.MO.REL,
+ "\u2afa": e.MO.REL,
+ "\u2afb": e.MO.BIN4,
+ "\u2afd": e.MO.BIN4,
+ "\u2afe": e.MO.BIN3,
+ "\u2b45": e.MO.RELSTRETCH,
+ "\u2b46": e.MO.RELSTRETCH,
+ "\u3008": e.MO.OPEN,
+ "\u3009": e.MO.CLOSE,
+ "\ufe37": e.MO.WIDEACCENT,
+ "\ufe38": e.MO.WIDEACCENT,
+ },
+ }),
+ (e.OPTABLE.infix["^"] = e.MO.WIDEREL),
+ (e.OPTABLE.infix._ = e.MO.WIDEREL),
+ (e.OPTABLE.prefix["\u2223"] = e.MO.OPEN),
+ (e.OPTABLE.prefix["\u2225"] = e.MO.OPEN),
+ (e.OPTABLE.postfix["\u2223"] = e.MO.CLOSE),
+ (e.OPTABLE.postfix["\u2225"] = e.MO.CLOSE);
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlMtext = void 0);
+ var s = r(0),
+ a = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (e.texClass = s.TEXCLASS.ORD), e;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "mtext";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "isSpacelike", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.defaults = i({}, s.AbstractMmlTokenNode.defaults)),
+ e
+ );
+ })(s.AbstractMmlTokenNode);
+ e.MmlMtext = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlMspace = void 0);
+ var s = r(0),
+ a = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (e.texClass = s.TEXCLASS.ORD), e;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "mspace";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return 0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "isSpacelike", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "hasNewline", {
+ get: function () {
+ var t = this.attributes;
+ return (
+ null == t.getExplicit("width") &&
+ null == t.getExplicit("height") &&
+ null == t.getExplicit("depth") &&
+ "newline" === t.get("linebreak")
+ );
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.defaults = i(i({}, s.AbstractMmlTokenNode.defaults), {
+ width: "0em",
+ height: "0ex",
+ depth: "0ex",
+ linebreak: "auto",
+ })),
+ e
+ );
+ })(s.AbstractMmlTokenNode);
+ e.MmlMspace = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }), (e.MmlMs = void 0);
+ var s = r(0),
+ a = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (e.texClass = s.TEXCLASS.ORD), e;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "ms";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.defaults = i(i({}, s.AbstractMmlTokenNode.defaults), {
+ lquote: '"',
+ rquote: '"',
+ })),
+ e
+ );
+ })(s.AbstractMmlTokenNode);
+ e.MmlMs = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ },
+ s =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlInferredMrow = e.MmlMrow = void 0);
+ var a = r(0),
+ l = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (e._core = null), e;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "mrow";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "isSpacelike", {
+ get: function () {
+ var t, e;
+ try {
+ for (
+ var r = s(this.childNodes), n = r.next();
+ !n.done;
+ n = r.next()
+ ) {
+ if (!n.value.isSpacelike) return !1;
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ n && !n.done && (e = r.return) && e.call(r);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "isEmbellished", {
+ get: function () {
+ var t,
+ e,
+ r = !1,
+ n = 0;
+ try {
+ for (
+ var o = s(this.childNodes), i = o.next();
+ !i.done;
+ i = o.next()
+ ) {
+ var a = i.value;
+ if (a)
+ if (a.isEmbellished) {
+ if (r) return !1;
+ (r = !0), (this._core = n);
+ } else if (!a.isSpacelike) return !1;
+ n++;
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ i && !i.done && (e = o.return) && e.call(o);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ return r;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.core = function () {
+ return this.isEmbellished && null != this._core
+ ? this.childNodes[this._core]
+ : this;
+ }),
+ (e.prototype.coreMO = function () {
+ return this.isEmbellished && null != this._core
+ ? this.childNodes[this._core].coreMO()
+ : this;
+ }),
+ (e.prototype.nonSpaceLength = function () {
+ var t,
+ e,
+ r = 0;
+ try {
+ for (
+ var n = s(this.childNodes), o = n.next();
+ !o.done;
+ o = n.next()
+ ) {
+ var i = o.value;
+ i && !i.isSpacelike && r++;
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ o && !o.done && (e = n.return) && e.call(n);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ return r;
+ }),
+ (e.prototype.firstNonSpace = function () {
+ var t, e;
+ try {
+ for (
+ var r = s(this.childNodes), n = r.next();
+ !n.done;
+ n = r.next()
+ ) {
+ var o = n.value;
+ if (o && !o.isSpacelike) return o;
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ n && !n.done && (e = r.return) && e.call(r);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ return null;
+ }),
+ (e.prototype.lastNonSpace = function () {
+ for (var t = this.childNodes.length; --t >= 0; ) {
+ var e = this.childNodes[t];
+ if (e && !e.isSpacelike) return e;
+ }
+ return null;
+ }),
+ (e.prototype.setTeXclass = function (t) {
+ var e, r, n, o;
+ if (
+ (null == this.getProperty("open") &&
+ null == this.getProperty("close")) ||
+ (t && null == t.getProperty("fnOP"))
+ ) {
+ try {
+ for (
+ var i = s(this.childNodes), l = i.next();
+ !l.done;
+ l = i.next()
+ ) {
+ t = l.value.setTeXclass(t);
+ }
+ } catch (t) {
+ n = { error: t };
+ } finally {
+ try {
+ l && !l.done && (o = i.return) && o.call(i);
+ } finally {
+ if (n) throw n.error;
+ }
+ }
+ this.childNodes[0] && this.updateTeXclass(this.childNodes[0]);
+ } else {
+ this.getPrevClass(t), (t = null);
+ try {
+ for (
+ var u = s(this.childNodes), c = u.next();
+ !c.done;
+ c = u.next()
+ ) {
+ t = c.value.setTeXclass(t);
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ c && !c.done && (r = u.return) && r.call(u);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ null == this.texClass && (this.texClass = a.TEXCLASS.INNER);
+ }
+ return t;
+ }),
+ (e.defaults = i({}, a.AbstractMmlNode.defaults)),
+ e
+ );
+ })(a.AbstractMmlNode);
+ e.MmlMrow = l;
+ var u = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "inferredMrow";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "isInferred", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "notParent", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.toString = function () {
+ return "[" + this.childNodes.join(",") + "]";
+ }),
+ (e.defaults = l.defaults),
+ e
+ );
+ })(l);
+ e.MmlInferredMrow = u;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ },
+ s =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlMfrac = void 0);
+ var a = r(0),
+ l = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "mfrac";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return 2;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "linebreakContainer", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.setTeXclass = function (t) {
+ var e, r;
+ this.getPrevClass(t);
+ try {
+ for (
+ var n = s(this.childNodes), o = n.next();
+ !o.done;
+ o = n.next()
+ ) {
+ o.value.setTeXclass(null);
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ o && !o.done && (r = n.return) && r.call(n);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ return this;
+ }),
+ (e.prototype.setChildInheritedAttributes = function (t, e, r, n) {
+ (!e || r > 0) && r++,
+ this.childNodes[0].setInheritedAttributes(t, !1, r, n),
+ this.childNodes[1].setInheritedAttributes(t, !1, r, !0);
+ }),
+ (e.defaults = i(i({}, a.AbstractMmlBaseNode.defaults), {
+ linethickness: "medium",
+ numalign: "center",
+ denomalign: "center",
+ bevelled: !1,
+ })),
+ e
+ );
+ })(a.AbstractMmlBaseNode);
+ e.MmlMfrac = l;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlMsqrt = void 0);
+ var s = r(0),
+ a = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (e.texClass = s.TEXCLASS.ORD), e;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "msqrt";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return -1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "linebreakContainer", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.setTeXclass = function (t) {
+ return (
+ this.getPrevClass(t), this.childNodes[0].setTeXclass(null), this
+ );
+ }),
+ (e.prototype.setChildInheritedAttributes = function (t, e, r, n) {
+ this.childNodes[0].setInheritedAttributes(t, e, r, !0);
+ }),
+ (e.defaults = i({}, s.AbstractMmlNode.defaults)),
+ e
+ );
+ })(s.AbstractMmlNode);
+ e.MmlMsqrt = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlMroot = void 0);
+ var s = r(0),
+ a = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (e.texClass = s.TEXCLASS.ORD), e;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "mroot";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return 2;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.setChildInheritedAttributes = function (t, e, r, n) {
+ this.childNodes[0].setInheritedAttributes(t, e, r, !0),
+ this.childNodes[1].setInheritedAttributes(t, !1, r + 2, n);
+ }),
+ (e.defaults = i({}, s.AbstractMmlNode.defaults)),
+ e
+ );
+ })(s.AbstractMmlNode);
+ e.MmlMroot = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlMstyle = void 0);
+ var s = r(0),
+ a = r(2),
+ l = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "mstyle";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "notParent", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.setChildInheritedAttributes = function (t, e, r, n) {
+ var o = this.attributes.getExplicit("scriptlevel");
+ null != o &&
+ ((o = o.toString()).match(/^\s*[-+]/)
+ ? (r += parseInt(o))
+ : (r = parseInt(o)));
+ var i = this.attributes.getExplicit("displaystyle");
+ null != i && (e = !0 === i),
+ (t = this.addInheritedAttributes(
+ t,
+ this.attributes.getAllAttributes(),
+ )),
+ this.childNodes[0].setInheritedAttributes(t, e, r, n);
+ }),
+ (e.defaults = i(i({}, s.AbstractMmlLayoutNode.defaults), {
+ scriptlevel: a.INHERIT,
+ displaystyle: a.INHERIT,
+ scriptsizemultiplier: 1 / Math.sqrt(2),
+ scriptminsize: "8px",
+ mathbackground: a.INHERIT,
+ mathcolor: a.INHERIT,
+ dir: a.INHERIT,
+ infixlinebreakstyle: "before",
+ })),
+ e
+ );
+ })(s.AbstractMmlLayoutNode);
+ e.MmlMstyle = l;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlMerror = void 0);
+ var s = r(0),
+ a = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (e.texClass = s.TEXCLASS.ORD), e;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "merror";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return -1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "linebreakContainer", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.defaults = i({}, s.AbstractMmlNode.defaults)),
+ e
+ );
+ })(s.AbstractMmlNode);
+ e.MmlMerror = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlMpadded = void 0);
+ var s = r(0),
+ a = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "mpadded";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.defaults = i(i({}, s.AbstractMmlLayoutNode.defaults), {
+ width: "",
+ height: "",
+ depth: "",
+ lspace: 0,
+ voffset: 0,
+ })),
+ e
+ );
+ })(s.AbstractMmlLayoutNode);
+ e.MmlMpadded = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlMphantom = void 0);
+ var s = r(0),
+ a = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (e.texClass = s.TEXCLASS.ORD), e;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "mphantom";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.defaults = i({}, s.AbstractMmlLayoutNode.defaults)),
+ e
+ );
+ })(s.AbstractMmlLayoutNode);
+ e.MmlMphantom = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ },
+ s =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlMfenced = void 0);
+ var a = r(0),
+ l = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (
+ (e.texClass = a.TEXCLASS.INNER),
+ (e.separators = []),
+ (e.open = null),
+ (e.close = null),
+ e
+ );
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "mfenced";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.setTeXclass = function (t) {
+ this.getPrevClass(t),
+ this.open && (t = this.open.setTeXclass(t)),
+ this.childNodes[0] && (t = this.childNodes[0].setTeXclass(t));
+ for (var e = 1, r = this.childNodes.length; e < r; e++)
+ this.separators[e - 1] &&
+ (t = this.separators[e - 1].setTeXclass(t)),
+ this.childNodes[e] && (t = this.childNodes[e].setTeXclass(t));
+ return (
+ this.close && (t = this.close.setTeXclass(t)),
+ this.updateTeXclass(this.open),
+ t
+ );
+ }),
+ (e.prototype.setChildInheritedAttributes = function (e, r, n, o) {
+ var i, a;
+ this.addFakeNodes();
+ try {
+ for (
+ var l = s([this.open, this.close].concat(this.separators)),
+ u = l.next();
+ !u.done;
+ u = l.next()
+ ) {
+ var c = u.value;
+ c && c.setInheritedAttributes(e, r, n, o);
+ }
+ } catch (t) {
+ i = { error: t };
+ } finally {
+ try {
+ u && !u.done && (a = l.return) && a.call(l);
+ } finally {
+ if (i) throw i.error;
+ }
+ }
+ t.prototype.setChildInheritedAttributes.call(this, e, r, n, o);
+ }),
+ (e.prototype.addFakeNodes = function () {
+ var t,
+ e,
+ r = this.attributes.getList("open", "close", "separators"),
+ n = r.open,
+ o = r.close,
+ i = r.separators;
+ if (
+ ((n = n.replace(/[ \t\n\r]/g, "")),
+ (o = o.replace(/[ \t\n\r]/g, "")),
+ (i = i.replace(/[ \t\n\r]/g, "")),
+ n &&
+ (this.open = this.fakeNode(
+ n,
+ { fence: !0, form: "prefix" },
+ a.TEXCLASS.OPEN,
+ )),
+ i)
+ ) {
+ for (; i.length < this.childNodes.length - 1; )
+ i += i.charAt(i.length - 1);
+ var l = 0;
+ try {
+ for (
+ var u = s(this.childNodes.slice(1)), c = u.next();
+ !c.done;
+ c = u.next()
+ ) {
+ c.value && this.separators.push(this.fakeNode(i.charAt(l++)));
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ c && !c.done && (e = u.return) && e.call(u);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ }
+ o &&
+ (this.close = this.fakeNode(
+ o,
+ { fence: !0, form: "postfix" },
+ a.TEXCLASS.CLOSE,
+ ));
+ }),
+ (e.prototype.fakeNode = function (t, e, r) {
+ void 0 === e && (e = {}), void 0 === r && (r = null);
+ var n = this.factory.create("text").setText(t),
+ o = this.factory.create("mo", e, [n]);
+ return (o.texClass = r), (o.parent = this), o;
+ }),
+ (e.defaults = i(i({}, a.AbstractMmlNode.defaults), {
+ open: "(",
+ close: ")",
+ separators: ",",
+ })),
+ e
+ );
+ })(a.AbstractMmlNode);
+ e.MmlMfenced = l;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlMenclose = void 0);
+ var s = r(0),
+ a = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (e.texClass = s.TEXCLASS.ORD), e;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "menclose";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return -1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "linebreakContininer", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.setTeXclass = function (t) {
+ return (
+ (t = this.childNodes[0].setTeXclass(t)),
+ this.updateTeXclass(this.childNodes[0]),
+ t
+ );
+ }),
+ (e.defaults = i(i({}, s.AbstractMmlNode.defaults), {
+ notation: "longdiv",
+ })),
+ e
+ );
+ })(s.AbstractMmlNode);
+ e.MmlMenclose = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlMaction = void 0);
+ var s = r(0),
+ a = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "maction";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return 1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "selected", {
+ get: function () {
+ var t = this.attributes.get("selection"),
+ e = Math.max(1, Math.min(this.childNodes.length, t)) - 1;
+ return this.childNodes[e] || this.factory.create("mrow");
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "isEmbellished", {
+ get: function () {
+ return this.selected.isEmbellished;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "isSpacelike", {
+ get: function () {
+ return this.selected.isSpacelike;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.core = function () {
+ return this.selected.core();
+ }),
+ (e.prototype.coreMO = function () {
+ return this.selected.coreMO();
+ }),
+ (e.prototype.verifyAttributes = function (e) {
+ (t.prototype.verifyAttributes.call(this, e),
+ "toggle" !== this.attributes.get("actiontype") &&
+ void 0 !== this.attributes.getExplicit("selection")) &&
+ delete this.attributes.getAllAttributes().selection;
+ }),
+ (e.prototype.setTeXclass = function (t) {
+ "tooltip" === this.attributes.get("actiontype") &&
+ this.childNodes[1] &&
+ this.childNodes[1].setTeXclass(null);
+ var e = this.selected;
+ return (t = e.setTeXclass(t)), this.updateTeXclass(e), t;
+ }),
+ (e.prototype.nextToggleSelection = function () {
+ var t = Math.max(1, this.attributes.get("selection") + 1);
+ t > this.childNodes.length && (t = 1),
+ this.attributes.set("selection", t);
+ }),
+ (e.defaults = i(i({}, s.AbstractMmlNode.defaults), {
+ actiontype: "toggle",
+ selection: 1,
+ })),
+ e
+ );
+ })(s.AbstractMmlNode);
+ e.MmlMaction = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlMover = e.MmlMunder = e.MmlMunderover = void 0);
+ var s = r(0),
+ a = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "munderover";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return 3;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "base", {
+ get: function () {
+ return 0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "under", {
+ get: function () {
+ return 1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "over", {
+ get: function () {
+ return 2;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "linebreakContainer", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.setChildInheritedAttributes = function (t, e, r, n) {
+ var o = this.childNodes;
+ o[0].setInheritedAttributes(t, e, r, n || !!o[this.over]);
+ var i = !(e || !o[0].coreMO().attributes.get("movablelimits")),
+ s = this.constructor.ACCENTS;
+ o[1].setInheritedAttributes(
+ t,
+ !1,
+ this.getScriptlevel(s[1], i, r),
+ n || 1 === this.under,
+ ),
+ this.setInheritedAccent(1, s[1], e, r, n, i),
+ o[2] &&
+ (o[2].setInheritedAttributes(
+ t,
+ !1,
+ this.getScriptlevel(s[2], i, r),
+ n || 2 === this.under,
+ ),
+ this.setInheritedAccent(2, s[2], e, r, n, i));
+ }),
+ (e.prototype.getScriptlevel = function (t, e, r) {
+ return (!e && this.attributes.get(t)) || r++, r;
+ }),
+ (e.prototype.setInheritedAccent = function (t, e, r, n, o, i) {
+ var s = this.childNodes[t];
+ if (null == this.attributes.getExplicit(e) && s.isEmbellished) {
+ var a = s.coreMO().attributes.get("accent");
+ this.attributes.setInherited(e, a),
+ a !== this.attributes.getDefault(e) &&
+ s.setInheritedAttributes(
+ {},
+ r,
+ this.getScriptlevel(e, i, n),
+ o,
+ );
+ }
+ }),
+ (e.defaults = i(i({}, s.AbstractMmlBaseNode.defaults), {
+ accent: !1,
+ accentunder: !1,
+ align: "center",
+ })),
+ (e.ACCENTS = ["", "accentunder", "accent"]),
+ e
+ );
+ })(s.AbstractMmlBaseNode);
+ e.MmlMunderover = a;
+ var l = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "munder";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return 2;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.defaults = i({}, a.defaults)),
+ e
+ );
+ })(a);
+ e.MmlMunder = l;
+ var u = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "mover";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return 2;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "over", {
+ get: function () {
+ return 1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "under", {
+ get: function () {
+ return 2;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.defaults = i({}, a.defaults)),
+ (e.ACCENTS = ["", "accent", "accentunder"]),
+ e
+ );
+ })(a);
+ e.MmlMover = u;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlNone = e.MmlMprescripts = e.MmlMmultiscripts = void 0);
+ var s = r(0),
+ a = r(14),
+ l = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "mmultiscripts";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return 1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.setChildInheritedAttributes = function (t, e, r, n) {
+ this.childNodes[0].setInheritedAttributes(t, e, r, n);
+ for (var o = !1, i = 1, s = 0; i < this.childNodes.length; i++) {
+ var a = this.childNodes[i];
+ if (a.isKind("mprescripts")) {
+ if (!o && ((o = !0), i % 2 == 0)) {
+ var l = this.factory.create("mrow");
+ this.childNodes.splice(i, 0, l), (l.parent = this), i++;
+ }
+ } else {
+ var u = n || s % 2 == 0;
+ a.setInheritedAttributes(t, !1, r + 1, u), s++;
+ }
+ }
+ this.childNodes.length % 2 == (o ? 1 : 0) &&
+ (this.appendChild(this.factory.create("mrow")),
+ this.childNodes[
+ this.childNodes.length - 1
+ ].setInheritedAttributes(t, !1, r + 1, n));
+ }),
+ (e.prototype.verifyChildren = function (e) {
+ for (
+ var r = !1, n = e.fixMmultiscripts, o = 0;
+ o < this.childNodes.length;
+ o++
+ ) {
+ var i = this.childNodes[o];
+ i.isKind("mprescripts") &&
+ (r
+ ? i.mError(
+ i.kind + " can only appear once in " + this.kind,
+ e,
+ !0,
+ )
+ : ((r = !0),
+ o % 2 != 0 ||
+ n ||
+ this.mError(
+ "There must be an equal number of prescripts of each type",
+ e,
+ )));
+ }
+ this.childNodes.length % 2 != (r ? 1 : 0) ||
+ n ||
+ this.mError(
+ "There must be an equal number of scripts of each type",
+ e,
+ ),
+ t.prototype.verifyChildren.call(this, e);
+ }),
+ (e.defaults = i({}, a.MmlMsubsup.defaults)),
+ e
+ );
+ })(a.MmlMsubsup);
+ e.MmlMmultiscripts = l;
+ var u = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "mprescripts";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return 0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.verifyTree = function (e) {
+ t.prototype.verifyTree.call(this, e),
+ this.parent &&
+ !this.parent.isKind("mmultiscripts") &&
+ this.mError(
+ this.kind + " must be a child of mmultiscripts",
+ e,
+ !0,
+ );
+ }),
+ (e.defaults = i({}, s.AbstractMmlNode.defaults)),
+ e
+ );
+ })(s.AbstractMmlNode);
+ e.MmlMprescripts = u;
+ var c = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "none";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return 0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.verifyTree = function (e) {
+ t.prototype.verifyTree.call(this, e),
+ this.parent &&
+ !this.parent.isKind("mmultiscripts") &&
+ this.mError(
+ this.kind + " must be a child of mmultiscripts",
+ e,
+ !0,
+ );
+ }),
+ (e.defaults = i({}, s.AbstractMmlNode.defaults)),
+ e
+ );
+ })(s.AbstractMmlNode);
+ e.MmlNone = c;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ },
+ s =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlMtable = void 0);
+ var a = r(0),
+ l = r(15),
+ u = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (
+ (e.properties = { useHeight: 1 }), (e.texClass = a.TEXCLASS.ORD), e
+ );
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "mtable";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "linebreakContainer", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.setInheritedAttributes = function (e, r, n, o) {
+ var i, l;
+ try {
+ for (
+ var u = s(a.indentAttributes), c = u.next();
+ !c.done;
+ c = u.next()
+ ) {
+ var p = c.value;
+ e[p] && this.attributes.setInherited(p, e[p][1]),
+ void 0 !== this.attributes.getExplicit(p) &&
+ delete this.attributes.getAllAttributes()[p];
+ }
+ } catch (t) {
+ i = { error: t };
+ } finally {
+ try {
+ c && !c.done && (l = u.return) && l.call(u);
+ } finally {
+ if (i) throw i.error;
+ }
+ }
+ t.prototype.setInheritedAttributes.call(this, e, r, n, o);
+ }),
+ (e.prototype.setChildInheritedAttributes = function (t, e, r, n) {
+ var o, i, a, u;
+ try {
+ for (
+ var c = s(this.childNodes), p = c.next();
+ !p.done;
+ p = c.next()
+ ) {
+ (y = p.value).isKind("mtr") ||
+ this.replaceChild(this.factory.create("mtr"), y).appendChild(
+ y,
+ );
+ }
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ p && !p.done && (i = c.return) && i.call(c);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ (e = !(
+ !this.attributes.getExplicit("displaystyle") &&
+ !this.attributes.getDefault("displaystyle")
+ )),
+ (t = this.addInheritedAttributes(t, {
+ columnalign: this.attributes.get("columnalign"),
+ rowalign: "center",
+ }));
+ var f = l.split(this.attributes.get("rowalign"));
+ try {
+ for (
+ var h = s(this.childNodes), d = h.next();
+ !d.done;
+ d = h.next()
+ ) {
+ var y = d.value;
+ (t.rowalign[1] = f.shift() || t.rowalign[1]),
+ y.setInheritedAttributes(t, e, r, n);
+ }
+ } catch (t) {
+ a = { error: t };
+ } finally {
+ try {
+ d && !d.done && (u = h.return) && u.call(h);
+ } finally {
+ if (a) throw a.error;
+ }
+ }
+ }),
+ (e.prototype.verifyChildren = function (e) {
+ var r, n;
+ if (!e.fixMtables)
+ try {
+ for (
+ var o = s(this.childNodes), i = o.next();
+ !i.done;
+ i = o.next()
+ ) {
+ i.value.isKind("mtr") ||
+ this.mError(
+ "Children of " + this.kind + " must be mtr or mlabeledtr",
+ e,
+ );
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ i && !i.done && (n = o.return) && n.call(o);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ t.prototype.verifyChildren.call(this, e);
+ }),
+ (e.prototype.setTeXclass = function (t) {
+ var e, r;
+ this.getPrevClass(t);
+ try {
+ for (
+ var n = s(this.childNodes), o = n.next();
+ !o.done;
+ o = n.next()
+ ) {
+ o.value.setTeXclass(null);
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ o && !o.done && (r = n.return) && r.call(n);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ return this;
+ }),
+ (e.defaults = i(i({}, a.AbstractMmlNode.defaults), {
+ align: "axis",
+ rowalign: "baseline",
+ columnalign: "center",
+ groupalign: "{left}",
+ alignmentscope: !0,
+ columnwidth: "auto",
+ width: "auto",
+ rowspacing: "1ex",
+ columnspacing: ".8em",
+ rowlines: "none",
+ columnlines: "none",
+ frame: "none",
+ framespacing: "0.4em 0.5ex",
+ equalrows: !1,
+ equalcolumns: !1,
+ displaystyle: !1,
+ side: "right",
+ minlabelspacing: "0.8em",
+ })),
+ e
+ );
+ })(a.AbstractMmlNode);
+ e.MmlMtable = u;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ },
+ s =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlMlabeledtr = e.MmlMtr = void 0);
+ var a = r(0),
+ l = r(2),
+ u = r(15),
+ c = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "mtr";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "linebreakContainer", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.setChildInheritedAttributes = function (t, e, r, n) {
+ var o, i, a, l;
+ try {
+ for (
+ var c = s(this.childNodes), p = c.next();
+ !p.done;
+ p = c.next()
+ ) {
+ (y = p.value).isKind("mtd") ||
+ this.replaceChild(this.factory.create("mtd"), y).appendChild(
+ y,
+ );
+ }
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ p && !p.done && (i = c.return) && i.call(c);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ var f = u.split(this.attributes.get("columnalign"));
+ 1 === this.arity && f.unshift(this.parent.attributes.get("side")),
+ (t = this.addInheritedAttributes(t, {
+ rowalign: this.attributes.get("rowalign"),
+ columnalign: "center",
+ }));
+ try {
+ for (
+ var h = s(this.childNodes), d = h.next();
+ !d.done;
+ d = h.next()
+ ) {
+ var y = d.value;
+ (t.columnalign[1] = f.shift() || t.columnalign[1]),
+ y.setInheritedAttributes(t, e, r, n);
+ }
+ } catch (t) {
+ a = { error: t };
+ } finally {
+ try {
+ d && !d.done && (l = h.return) && l.call(h);
+ } finally {
+ if (a) throw a.error;
+ }
+ }
+ }),
+ (e.prototype.verifyChildren = function (e) {
+ var r, n;
+ if (!this.parent || this.parent.isKind("mtable")) {
+ if (!e.fixMtables)
+ try {
+ for (
+ var o = s(this.childNodes), i = o.next();
+ !i.done;
+ i = o.next()
+ ) {
+ var a = i.value;
+ if (!a.isKind("mtd"))
+ this.replaceChild(this.factory.create("mtr"), a).mError(
+ "Children of " + this.kind + " must be mtd",
+ e,
+ !0,
+ );
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ i && !i.done && (n = o.return) && n.call(o);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ t.prototype.verifyChildren.call(this, e);
+ } else
+ this.mError(
+ this.kind + " can only be a child of an mtable",
+ e,
+ !0,
+ );
+ }),
+ (e.prototype.setTeXclass = function (t) {
+ var e, r;
+ this.getPrevClass(t);
+ try {
+ for (
+ var n = s(this.childNodes), o = n.next();
+ !o.done;
+ o = n.next()
+ ) {
+ o.value.setTeXclass(null);
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ o && !o.done && (r = n.return) && r.call(n);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ return this;
+ }),
+ (e.defaults = i(i({}, a.AbstractMmlNode.defaults), {
+ rowalign: l.INHERIT,
+ columnalign: l.INHERIT,
+ groupalign: l.INHERIT,
+ })),
+ e
+ );
+ })(a.AbstractMmlNode);
+ e.MmlMtr = c;
+ var p = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "mlabeledtr";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return 1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ e
+ );
+ })(c);
+ e.MmlMlabeledtr = p;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }), (e.MmlMtd = void 0);
+ var s = r(0),
+ a = r(2),
+ l = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "mtd";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return -1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "linebreakContainer", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.verifyChildren = function (e) {
+ !this.parent || this.parent.isKind("mtr")
+ ? t.prototype.verifyChildren.call(this, e)
+ : this.mError(
+ this.kind + " can only be a child of an mtr or mlabeledtr",
+ e,
+ !0,
+ );
+ }),
+ (e.prototype.setTeXclass = function (t) {
+ return (
+ this.getPrevClass(t), this.childNodes[0].setTeXclass(null), this
+ );
+ }),
+ (e.defaults = i(i({}, s.AbstractMmlBaseNode.defaults), {
+ rowspan: 1,
+ columnspan: 1,
+ rowalign: a.INHERIT,
+ columnalign: a.INHERIT,
+ groupalign: a.INHERIT,
+ })),
+ e
+ );
+ })(s.AbstractMmlBaseNode);
+ e.MmlMtd = l;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlMaligngroup = void 0);
+ var s = r(0),
+ a = r(2),
+ l = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "maligngroup";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "isSpacelike", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.setChildInheritedAttributes = function (e, r, n, o) {
+ (e = this.addInheritedAttributes(
+ e,
+ this.attributes.getAllAttributes(),
+ )),
+ t.prototype.setChildInheritedAttributes.call(this, e, r, n, o);
+ }),
+ (e.defaults = i(i({}, s.AbstractMmlLayoutNode.defaults), {
+ groupalign: a.INHERIT,
+ })),
+ e
+ );
+ })(s.AbstractMmlLayoutNode);
+ e.MmlMaligngroup = l;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlMalignmark = void 0);
+ var s = r(0),
+ a = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "malignmark";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return 0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "isSpacelike", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.defaults = i(i({}, s.AbstractMmlNode.defaults), { edge: "left" })),
+ e
+ );
+ })(s.AbstractMmlNode);
+ e.MmlMalignmark = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlMglyph = void 0);
+ var s = r(0),
+ a = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (e.texClass = s.TEXCLASS.ORD), e;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "mglyph";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.defaults = i(i({}, s.AbstractMmlTokenNode.defaults), {
+ alt: "",
+ src: "",
+ width: "auto",
+ height: "auto",
+ valign: "0em",
+ })),
+ e
+ );
+ })(s.AbstractMmlTokenNode);
+ e.MmlMglyph = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlAnnotation = e.MmlAnnotationXML = e.MmlSemantics = void 0);
+ var s = r(0),
+ a = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "semantics";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return 1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "notParent", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.defaults = i(i({}, s.AbstractMmlBaseNode.defaults), {
+ definitionUrl: null,
+ encoding: null,
+ })),
+ e
+ );
+ })(s.AbstractMmlBaseNode);
+ e.MmlSemantics = a;
+ var l = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "annotation-xml";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.setChildInheritedAttributes = function () {}),
+ (e.defaults = i(i({}, s.AbstractMmlNode.defaults), {
+ definitionUrl: null,
+ encoding: null,
+ cd: "mathmlkeys",
+ name: "",
+ src: null,
+ })),
+ e
+ );
+ })(s.AbstractMmlNode);
+ e.MmlAnnotationXML = l;
+ var u = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (e.properties = { isChars: !0 }), e;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "annotation";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.defaults = i({}, l.defaults)),
+ e
+ );
+ })(l);
+ e.MmlAnnotation = u;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }), (e.TeXAtom = void 0);
+ var s = r(0),
+ a = r(13),
+ l = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (e.texClass = s.TEXCLASS.ORD), e;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "TeXAtom";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return -1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "notParent", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.setTeXclass = function (t) {
+ return this.childNodes[0].setTeXclass(null), this.adjustTeXclass(t);
+ }),
+ (e.prototype.adjustTeXclass = function (t) {
+ return t;
+ }),
+ (e.defaults = i({}, s.AbstractMmlBaseNode.defaults)),
+ e
+ );
+ })(s.AbstractMmlBaseNode);
+ (e.TeXAtom = l),
+ (l.prototype.adjustTeXclass = a.MmlMo.prototype.adjustTeXclass);
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MathChoice = void 0);
+ var s = r(0),
+ a = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "kind", {
+ get: function () {
+ return "MathChoice";
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "arity", {
+ get: function () {
+ return 4;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(e.prototype, "notParent", {
+ get: function () {
+ return !0;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.setInheritedAttributes = function (t, e, r, n) {
+ var o = e ? 0 : Math.max(0, Math.min(r, 2)) + 1,
+ i = this.childNodes[o] || this.factory.create("mrow");
+ this.parent.replaceChild(i, this),
+ i.setInheritedAttributes(t, e, r, n);
+ }),
+ (e.defaults = i({}, s.AbstractMmlBaseNode.defaults)),
+ e
+ );
+ })(s.AbstractMmlBaseNode);
+ e.MathChoice = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ },
+ s =
+ (this && this.__read) ||
+ function (t, e) {
+ var r = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!r) return t;
+ var n,
+ o,
+ i = r.call(t),
+ s = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(n = i.next()).done; )
+ s.push(n.value);
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ n && !n.done && (r = i.return) && r.call(i);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ return s;
+ },
+ a =
+ (this && this.__spread) ||
+ function () {
+ for (var t = [], e = 0; e < arguments.length; e++)
+ t = t.concat(s(arguments[e]));
+ return t;
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.BitFieldClass = e.BitField = void 0);
+ var l = (function () {
+ function t() {
+ this.bits = 0;
+ }
+ return (
+ (t.allocate = function () {
+ for (var e, r, n = [], o = 0; o < arguments.length; o++)
+ n[o] = arguments[o];
+ try {
+ for (var s = i(n), a = s.next(); !a.done; a = s.next()) {
+ var l = a.value;
+ if (this.has(l))
+ throw new Error("Bit already allocated for " + l);
+ if (this.next === t.MAXBIT)
+ throw new Error("Maximum number of bits already allocated");
+ this.names.set(l, this.next), (this.next <<= 1);
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ a && !a.done && (r = s.return) && r.call(s);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ }),
+ (t.has = function (t) {
+ return this.names.has(t);
+ }),
+ (t.prototype.set = function (t) {
+ this.bits |= this.getBit(t);
+ }),
+ (t.prototype.clear = function (t) {
+ this.bits &= ~this.getBit(t);
+ }),
+ (t.prototype.isSet = function (t) {
+ return !!(this.bits & this.getBit(t));
+ }),
+ (t.prototype.reset = function () {
+ this.bits = 0;
+ }),
+ (t.prototype.getBit = function (t) {
+ var e = this.constructor.names.get(t);
+ if (!e) throw new Error("Unknown bit-field name: " + t);
+ return e;
+ }),
+ (t.MAXBIT = 1 << 31),
+ (t.next = 1),
+ (t.names = new Map()),
+ t
+ );
+ })();
+ (e.BitField = l),
+ (e.BitFieldClass = function () {
+ for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
+ var r = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return o(e, t), e;
+ })(l);
+ return r.allocate.apply(r, a(t)), r;
+ });
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.HandlerList = void 0);
+ var s = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ (e.prototype.register = function (t) {
+ return this.add(t, t.priority);
+ }),
+ (e.prototype.unregister = function (t) {
+ this.remove(t);
+ }),
+ (e.prototype.handlesDocument = function (t) {
+ var e, r;
+ try {
+ for (var n = i(this), o = n.next(); !o.done; o = n.next()) {
+ var s = o.value.item;
+ if (s.handlesDocument(t)) return s;
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ o && !o.done && (r = n.return) && r.call(n);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ throw new Error("Can't find handler for document");
+ }),
+ (e.prototype.document = function (t, e) {
+ return (
+ void 0 === e && (e = null), this.handlesDocument(t).create(t, e)
+ );
+ }),
+ e
+ );
+ })(r(3).PrioritizedList);
+ e.HandlerList = s;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ },
+ o =
+ (this && this.__read) ||
+ function (t, e) {
+ var r = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!r) return t;
+ var n,
+ o,
+ i = r.call(t),
+ s = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(n = i.next()).done; )
+ s.push(n.value);
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ n && !n.done && (r = i.return) && r.call(i);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ return s;
+ },
+ i =
+ (this && this.__spread) ||
+ function () {
+ for (var t = [], e = 0; e < arguments.length; e++)
+ t = t.concat(o(arguments[e]));
+ return t;
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.AbstractVisitor = void 0);
+ var s = r(11),
+ a = (function () {
+ function t(e) {
+ var r, o;
+ this.nodeHandlers = new Map();
+ try {
+ for (var i = n(e.getKinds()), s = i.next(); !s.done; s = i.next()) {
+ var a = s.value,
+ l = this[t.methodName(a)];
+ l && this.nodeHandlers.set(a, l);
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ s && !s.done && (o = i.return) && o.call(i);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ }
+ return (
+ (t.methodName = function (t) {
+ return (
+ "visit" +
+ (t.charAt(0).toUpperCase() + t.substr(1)).replace(
+ /[^a-z0-9_]/gi,
+ "_",
+ ) +
+ "Node"
+ );
+ }),
+ (t.prototype.visitTree = function (t) {
+ for (var e = [], r = 1; r < arguments.length; r++)
+ e[r - 1] = arguments[r];
+ return this.visitNode.apply(this, i([t], e));
+ }),
+ (t.prototype.visitNode = function (t) {
+ for (var e = [], r = 1; r < arguments.length; r++)
+ e[r - 1] = arguments[r];
+ var n = this.nodeHandlers.get(t.kind) || this.visitDefault;
+ return n.call.apply(n, i([this, t], e));
+ }),
+ (t.prototype.visitDefault = function (t) {
+ for (var e, r, o = [], a = 1; a < arguments.length; a++)
+ o[a - 1] = arguments[a];
+ if (t instanceof s.AbstractNode)
+ try {
+ for (
+ var l = n(t.childNodes), u = l.next();
+ !u.done;
+ u = l.next()
+ ) {
+ var c = u.value;
+ this.visitNode.apply(this, i([c], o));
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ u && !u.done && (r = l.return) && r.call(l);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ }),
+ (t.prototype.setNodeHandler = function (t, e) {
+ this.nodeHandlers.set(t, e);
+ }),
+ (t.prototype.removeNodeHandler = function (t) {
+ this.nodeHandlers.delete(t);
+ }),
+ t
+ );
+ })();
+ e.AbstractVisitor = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__assign) ||
+ function () {
+ return (i =
+ Object.assign ||
+ function (t) {
+ for (var e, r = 1, n = arguments.length; r < n; r++)
+ for (var o in (e = arguments[r]))
+ Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);
+ return t;
+ }).apply(this, arguments);
+ },
+ s =
+ (this && this.__read) ||
+ function (t, e) {
+ var r = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!r) return t;
+ var n,
+ o,
+ i = r.call(t),
+ s = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(n = i.next()).done; )
+ s.push(n.value);
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ n && !n.done && (r = i.return) && r.call(i);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ return s;
+ },
+ a =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.HTMLDocument = void 0);
+ var l = r(6),
+ u = r(1),
+ c = r(61),
+ p = r(62),
+ f = r(63),
+ h = r(4),
+ d = (function (t) {
+ function e(e, r, n) {
+ var o = this,
+ i = s(u.separateOptions(n, f.HTMLDomStrings.OPTIONS), 2),
+ a = i[0],
+ l = i[1];
+ return (
+ ((o = t.call(this, e, r, a) || this).domStrings =
+ o.options.DomStrings || new f.HTMLDomStrings(l)),
+ (o.domStrings.adaptor = r),
+ (o.styles = []),
+ o
+ );
+ }
+ return (
+ o(e, t),
+ (e.prototype.findPosition = function (t, e, r, n) {
+ var o,
+ i,
+ l = this.adaptor;
+ try {
+ for (var u = a(n[t]), c = u.next(); !c.done; c = u.next()) {
+ var p = c.value,
+ f = s(p, 2),
+ h = f[0],
+ d = f[1];
+ if (e <= d && "#text" === l.kind(h))
+ return { node: h, n: Math.max(e, 0), delim: r };
+ e -= d;
+ }
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ c && !c.done && (i = u.return) && i.call(u);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ return { node: null, n: 0, delim: r };
+ }),
+ (e.prototype.mathItem = function (t, e, r) {
+ var n = t.math,
+ o = this.findPosition(t.n, t.start.n, t.open, r),
+ i = this.findPosition(t.n, t.end.n, t.close, r);
+ return new this.options.MathItem(n, e, t.display, o, i);
+ }),
+ (e.prototype.findMath = function (t) {
+ var e, r, n, o, i, l, c, p, f;
+ if (!this.processed.isSet("findMath")) {
+ (this.adaptor.document = this.document),
+ (t = u.userOptions(
+ {
+ elements: this.options.elements || [
+ this.adaptor.body(this.document),
+ ],
+ },
+ t,
+ ));
+ try {
+ for (
+ var h = a(
+ this.adaptor.getElements(t.elements, this.document),
+ ),
+ d = h.next();
+ !d.done;
+ d = h.next()
+ ) {
+ var y = d.value,
+ O = s([null, null], 2),
+ M = O[0],
+ E = O[1];
+ try {
+ for (
+ var v = ((n = void 0), a(this.inputJax)), m = v.next();
+ !m.done;
+ m = v.next()
+ ) {
+ var b = m.value,
+ g = new this.options.MathList();
+ if (b.processStrings) {
+ null === M &&
+ ((M = (i = s(this.domStrings.find(y), 2))[0]),
+ (E = i[1]));
+ try {
+ for (
+ var L = ((l = void 0), a(b.findMath(M))),
+ N = L.next();
+ !N.done;
+ N = L.next()
+ ) {
+ var R = N.value;
+ g.push(this.mathItem(R, b, E));
+ }
+ } catch (t) {
+ l = { error: t };
+ } finally {
+ try {
+ N && !N.done && (c = L.return) && c.call(L);
+ } finally {
+ if (l) throw l.error;
+ }
+ }
+ } else
+ try {
+ for (
+ var T = ((p = void 0), a(b.findMath(y))),
+ A = T.next();
+ !A.done;
+ A = T.next()
+ ) {
+ R = A.value;
+ var _ = new this.options.MathItem(
+ R.math,
+ b,
+ R.display,
+ R.start,
+ R.end,
+ );
+ g.push(_);
+ }
+ } catch (t) {
+ p = { error: t };
+ } finally {
+ try {
+ A && !A.done && (f = T.return) && f.call(T);
+ } finally {
+ if (p) throw p.error;
+ }
+ }
+ this.math.merge(g);
+ }
+ } catch (t) {
+ n = { error: t };
+ } finally {
+ try {
+ m && !m.done && (o = v.return) && o.call(v);
+ } finally {
+ if (n) throw n.error;
+ }
+ }
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ d && !d.done && (r = h.return) && r.call(h);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ this.processed.set("findMath");
+ }
+ return this;
+ }),
+ (e.prototype.updateDocument = function () {
+ return (
+ this.processed.isSet("updateDocument") ||
+ (this.addPageElements(),
+ this.addStyleSheet(),
+ t.prototype.updateDocument.call(this),
+ this.processed.set("updateDocument")),
+ this
+ );
+ }),
+ (e.prototype.addPageElements = function () {
+ var t = this.adaptor.body(this.document),
+ e = this.documentPageElements();
+ e && this.adaptor.append(t, e);
+ }),
+ (e.prototype.addStyleSheet = function () {
+ var t = this.documentStyleSheet();
+ if (t) {
+ var e = this.adaptor.head(this.document),
+ r = this.findSheet(e, this.adaptor.getAttribute(t, "id"));
+ r ? this.adaptor.replace(t, r) : this.adaptor.append(e, t);
+ }
+ }),
+ (e.prototype.findSheet = function (t, e) {
+ var r, n;
+ if (e)
+ try {
+ for (
+ var o = a(this.adaptor.tags(t, "style")), i = o.next();
+ !i.done;
+ i = o.next()
+ ) {
+ var s = i.value;
+ if (this.adaptor.getAttribute(s, "id") === e) return s;
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ i && !i.done && (n = o.return) && n.call(o);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ return null;
+ }),
+ (e.prototype.removeFromDocument = function (t) {
+ var e, r;
+ if (
+ (void 0 === t && (t = !1), this.processed.isSet("updateDocument"))
+ )
+ try {
+ for (
+ var n = a(this.math), o = n.next();
+ !o.done;
+ o = n.next()
+ ) {
+ var i = o.value;
+ i.state() >= h.STATE.INSERTED && i.state(h.STATE.TYPESET, t);
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ o && !o.done && (r = n.return) && r.call(n);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ return this.processed.clear("updateDocument"), this;
+ }),
+ (e.prototype.documentStyleSheet = function () {
+ return this.outputJax.styleSheet(this);
+ }),
+ (e.prototype.documentPageElements = function () {
+ return this.outputJax.pageElements(this);
+ }),
+ (e.prototype.addStyles = function (t) {
+ this.styles.push(t);
+ }),
+ (e.prototype.getStyles = function () {
+ return this.styles;
+ }),
+ (e.KIND = "HTML"),
+ (e.OPTIONS = i(i({}, l.AbstractMathDocument.OPTIONS), {
+ renderActions: u.expandable(
+ i(i({}, l.AbstractMathDocument.OPTIONS.renderActions), {
+ styles: [h.STATE.INSERTED + 1, "", "updateStyleSheet", !1],
+ }),
+ ),
+ MathList: p.HTMLMathList,
+ MathItem: c.HTMLMathItem,
+ DomStrings: null,
+ })),
+ e
+ );
+ })(l.AbstractMathDocument);
+ e.HTMLDocument = d;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ });
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.HTMLMathItem = void 0);
+ var i = r(4),
+ s = (function (t) {
+ function e(e, r, n, o, i) {
+ return (
+ void 0 === n && (n = !0),
+ void 0 === o && (o = { node: null, n: 0, delim: "" }),
+ void 0 === i && (i = { node: null, n: 0, delim: "" }),
+ t.call(this, e, r, n, o, i) || this
+ );
+ }
+ return (
+ o(e, t),
+ Object.defineProperty(e.prototype, "adaptor", {
+ get: function () {
+ return this.inputJax.adaptor;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.updateDocument = function (t) {
+ if (this.state() < i.STATE.INSERTED) {
+ if (this.inputJax.processStrings) {
+ var e = this.start.node;
+ if (e === this.end.node)
+ this.end.n &&
+ this.end.n < this.adaptor.value(this.end.node).length &&
+ this.adaptor.split(this.end.node, this.end.n),
+ this.start.n &&
+ (e = this.adaptor.split(this.start.node, this.start.n)),
+ this.adaptor.replace(this.typesetRoot, e);
+ else {
+ for (
+ this.start.n && (e = this.adaptor.split(e, this.start.n));
+ e !== this.end.node;
+ ) {
+ var r = this.adaptor.next(e);
+ this.adaptor.remove(e), (e = r);
+ }
+ this.adaptor.insert(this.typesetRoot, e),
+ this.end.n < this.adaptor.value(e).length &&
+ this.adaptor.split(e, this.end.n),
+ this.adaptor.remove(e);
+ }
+ } else this.adaptor.replace(this.typesetRoot, this.start.node);
+ (this.start.node = this.end.node = this.typesetRoot),
+ (this.start.n = this.end.n = 0),
+ this.state(i.STATE.INSERTED);
+ }
+ }),
+ (e.prototype.updateStyleSheet = function (t) {
+ t.addStyleSheet();
+ }),
+ (e.prototype.removeFromDocument = function (t) {
+ if ((void 0 === t && (t = !1), this.state() >= i.STATE.TYPESET)) {
+ var e = this.adaptor,
+ r = this.start.node,
+ n = e.text("");
+ if (t) {
+ var o = this.start.delim + this.math + this.end.delim;
+ if (this.inputJax.processStrings) n = e.text(o);
+ else {
+ var s = e.parse(o, "text/html");
+ n = e.firstChild(e.body(s));
+ }
+ }
+ e.parent(r) && e.replace(n, r),
+ (this.start.node = this.end.node = n),
+ (this.start.n = this.end.n = 0);
+ }
+ }),
+ e
+ );
+ })(i.AbstractMathItem);
+ e.HTMLMathItem = s;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ });
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.HTMLMathList = void 0);
+ var i = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return o(e, t), e;
+ })(r(8).AbstractMathList);
+ e.HTMLMathList = i;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n =
+ (this && this.__read) ||
+ function (t, e) {
+ var r = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!r) return t;
+ var n,
+ o,
+ i = r.call(t),
+ s = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(n = i.next()).done; )
+ s.push(n.value);
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ n && !n.done && (r = i.return) && r.call(i);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ return s;
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.HTMLDomStrings = void 0);
+ var o = r(1),
+ i = (function () {
+ function t(t) {
+ void 0 === t && (t = null);
+ var e = this.constructor;
+ (this.options = o.userOptions(o.defaultOptions({}, e.OPTIONS), t)),
+ this.init(),
+ this.getPatterns();
+ }
+ return (
+ (t.prototype.init = function () {
+ (this.strings = []),
+ (this.string = ""),
+ (this.snodes = []),
+ (this.nodes = []),
+ (this.stack = []);
+ }),
+ (t.prototype.getPatterns = function () {
+ var t = o.makeArray(this.options.skipHtmlTags),
+ e = o.makeArray(this.options.ignoreHtmlClass),
+ r = o.makeArray(this.options.processHtmlClass);
+ (this.skipHtmlTags = new RegExp("^(?:" + t.join("|") + ")$", "i")),
+ (this.ignoreHtmlClass = new RegExp(
+ "(?:^| )(?:" + e.join("|") + ")(?: |$)",
+ )),
+ (this.processHtmlClass = new RegExp(
+ "(?:^| )(?:" + r + ")(?: |$)",
+ ));
+ }),
+ (t.prototype.pushString = function () {
+ this.string.match(/\S/) &&
+ (this.strings.push(this.string), this.nodes.push(this.snodes)),
+ (this.string = ""),
+ (this.snodes = []);
+ }),
+ (t.prototype.extendString = function (t, e) {
+ this.snodes.push([t, e.length]), (this.string += e);
+ }),
+ (t.prototype.handleText = function (t, e) {
+ return (
+ e || this.extendString(t, this.adaptor.value(t)),
+ this.adaptor.next(t)
+ );
+ }),
+ (t.prototype.handleTag = function (t, e) {
+ if (!e) {
+ var r = this.options.includeHtmlTags[this.adaptor.kind(t)];
+ this.extendString(t, r);
+ }
+ return this.adaptor.next(t);
+ }),
+ (t.prototype.handleContainer = function (t, e) {
+ this.pushString();
+ var r = this.adaptor.getAttribute(t, "class") || "",
+ n = this.adaptor.kind(t) || "",
+ o = this.processHtmlClass.exec(r),
+ i = t;
+ return (
+ !this.adaptor.firstChild(t) ||
+ this.adaptor.getAttribute(t, "data-MJX") ||
+ (!o && this.skipHtmlTags.exec(n))
+ ? (i = this.adaptor.next(t))
+ : (this.adaptor.next(t) &&
+ this.stack.push([this.adaptor.next(t), e]),
+ (i = this.adaptor.firstChild(t)),
+ (e = (e || this.ignoreHtmlClass.exec(r)) && !o)),
+ [i, e]
+ );
+ }),
+ (t.prototype.find = function (t) {
+ var e, r;
+ this.init();
+ for (
+ var o = this.adaptor.next(t),
+ i = !1,
+ s = this.options.includeHtmlTags;
+ t && t !== o;
+ )
+ "#text" === this.adaptor.kind(t)
+ ? (t = this.handleText(t, i))
+ : void 0 !== s[this.adaptor.kind(t)]
+ ? (t = this.handleTag(t, i))
+ : ((t = (e = n(this.handleContainer(t, i), 2))[0]),
+ (i = e[1])),
+ !t &&
+ this.stack.length &&
+ (this.pushString(),
+ (t = (r = n(this.stack.pop(), 2))[0]),
+ (i = r[1]));
+ this.pushString();
+ var a = [this.strings, this.nodes];
+ return this.init(), a;
+ }),
+ (t.OPTIONS = {
+ skipHtmlTags: [
+ "script",
+ "noscript",
+ "style",
+ "textarea",
+ "pre",
+ "code",
+ "annotation",
+ "annotation-xml",
+ ],
+ includeHtmlTags: { br: "\n", wbr: "", "#comment": "" },
+ ignoreHtmlClass: "mathjax_ignore",
+ processHtmlClass: "mathjax_process",
+ }),
+ t
+ );
+ })();
+ e.HTMLDomStrings = i;
+ },
+ function (t, e, r) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.asyncLoad = void 0);
+ var n = r(17);
+ e.asyncLoad = function (t) {
+ return n.mathjax.asyncLoad
+ ? new Promise(function (e, r) {
+ var o = n.mathjax.asyncLoad(t);
+ o instanceof Promise
+ ? o
+ .then(function (t) {
+ return e(t);
+ })
+ .catch(function (t) {
+ return r(t);
+ })
+ : e(o);
+ })
+ : Promise.reject(
+ "Can't load '" + t + "': No asyncLoad method specified",
+ );
+ };
+ },
+ function (t, e, r) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.px =
+ e.emRounded =
+ e.em =
+ e.percent =
+ e.length2em =
+ e.MATHSPACE =
+ e.RELUNITS =
+ e.UNITS =
+ e.BIGDIMEN =
+ void 0),
+ (e.BIGDIMEN = 1e6),
+ (e.UNITS = { px: 1, in: 96, cm: 96 / 2.54, mm: 96 / 25.4 }),
+ (e.RELUNITS = { em: 1, ex: 0.431, pt: 0.1, pc: 1.2, mu: 1 / 18 }),
+ (e.MATHSPACE = {
+ veryverythinmathspace: 1 / 18,
+ verythinmathspace: 2 / 18,
+ thinmathspace: 3 / 18,
+ mediummathspace: 4 / 18,
+ thickmathspace: 5 / 18,
+ verythickmathspace: 6 / 18,
+ veryverythickmathspace: 7 / 18,
+ negativeveryverythinmathspace: -1 / 18,
+ negativeverythinmathspace: -2 / 18,
+ negativethinmathspace: -3 / 18,
+ negativemediummathspace: -4 / 18,
+ negativethickmathspace: -5 / 18,
+ negativeverythickmathspace: -6 / 18,
+ negativeveryverythickmathspace: -7 / 18,
+ thin: 0.04,
+ medium: 0.06,
+ thick: 0.1,
+ normal: 1,
+ big: 2,
+ small: 1 / Math.sqrt(2),
+ infinity: e.BIGDIMEN,
+ }),
+ (e.length2em = function (t, r, n, o) {
+ if (
+ (void 0 === r && (r = 0),
+ void 0 === n && (n = 1),
+ void 0 === o && (o = 16),
+ "string" != typeof t && (t = String(t)),
+ "" === t || null == t)
+ )
+ return r;
+ if (e.MATHSPACE[t]) return e.MATHSPACE[t];
+ var i = t.match(
+ /^\s*([-+]?(?:\.\d+|\d+(?:\.\d*)?))?(pt|em|ex|mu|px|pc|in|mm|cm|%)?/,
+ );
+ if (!i) return r;
+ var s = parseFloat(i[1] || "1"),
+ a = i[2];
+ return e.UNITS.hasOwnProperty(a)
+ ? (s * e.UNITS[a]) / o / n
+ : e.RELUNITS.hasOwnProperty(a)
+ ? s * e.RELUNITS[a]
+ : "%" === a
+ ? (s / 100) * r
+ : s * r;
+ }),
+ (e.percent = function (t) {
+ return (100 * t).toFixed(1).replace(/\.?0+$/, "") + "%";
+ }),
+ (e.em = function (t) {
+ return Math.abs(t) < 0.001
+ ? "0"
+ : t.toFixed(3).replace(/\.?0+$/, "") + "em";
+ }),
+ (e.emRounded = function (t, e) {
+ return (
+ void 0 === e && (e = 16),
+ (t = (Math.round(t * e) + 0.05) / e),
+ Math.abs(t) < 0.001
+ ? "0em"
+ : t.toFixed(3).replace(/\.?0+$/, "") + "em"
+ );
+ }),
+ (e.px = function (t, r, n) {
+ return (
+ void 0 === r && (r = -e.BIGDIMEN),
+ void 0 === n && (n = 16),
+ (t *= n),
+ r && t < r && (t = r),
+ Math.abs(t) < 0.1 ? "0" : t.toFixed(1).replace(/\.0$/, "") + "px"
+ );
+ });
+ },
+ function (t, e, r) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.AbstractFindMath = void 0);
+ var n = r(1),
+ o = (function () {
+ function t(t) {
+ var e = this.constructor;
+ this.options = n.userOptions(n.defaultOptions({}, e.OPTIONS), t);
+ }
+ return (t.OPTIONS = {}), t;
+ })();
+ e.AbstractFindMath = o;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MathMLVisitor = void 0);
+ var s = (function (t) {
+ function e() {
+ var e = (null !== t && t.apply(this, arguments)) || this;
+ return (e.document = null), e;
+ }
+ return (
+ o(e, t),
+ (e.prototype.visitTree = function (t, e) {
+ this.document = e;
+ var r = e.createElement("top");
+ return this.visitNode(t, r), (this.document = null), r.firstChild;
+ }),
+ (e.prototype.visitTextNode = function (t, e) {
+ e.appendChild(this.document.createTextNode(t.getText()));
+ }),
+ (e.prototype.visitXMLNode = function (t, e) {
+ e.appendChild(t.getXML().cloneNode(!0));
+ }),
+ (e.prototype.visitInferredMrowNode = function (t, e) {
+ var r, n;
+ try {
+ for (var o = i(t.childNodes), s = o.next(); !s.done; s = o.next()) {
+ var a = s.value;
+ this.visitNode(a, e);
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ s && !s.done && (n = o.return) && n.call(o);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ }),
+ (e.prototype.visitDefault = function (t, e) {
+ var r,
+ n,
+ o = this.document.createElement(t.kind);
+ this.addAttributes(t, o);
+ try {
+ for (var s = i(t.childNodes), a = s.next(); !a.done; a = s.next()) {
+ var l = a.value;
+ this.visitNode(l, o);
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ a && !a.done && (n = s.return) && n.call(s);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ e.appendChild(o);
+ }),
+ (e.prototype.addAttributes = function (t, e) {
+ var r,
+ n,
+ o = t.attributes,
+ s = o.getExplicitNames();
+ try {
+ for (var a = i(s), l = a.next(); !l.done; l = a.next()) {
+ var u = l.value;
+ e.setAttribute(u, o.getExplicit(u).toString());
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ l && !l.done && (n = a.return) && n.call(a);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ }),
+ e
+ );
+ })(r(16).MmlVisitor);
+ e.MathMLVisitor = s;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ },
+ s =
+ (this && this.__read) ||
+ function (t, e) {
+ var r = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!r) return t;
+ var n,
+ o,
+ i = r.call(t),
+ s = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(n = i.next()).done; )
+ s.push(n.value);
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ n && !n.done && (r = i.return) && r.call(i);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ return s;
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.SerializedMmlVisitor = e.toEntity = e.DATAMJX = void 0);
+ var a = r(16),
+ l = r(0),
+ u = r(12);
+ (e.DATAMJX = "data-mjx-"),
+ (e.toEntity = function (t) {
+ return "" + t.codePointAt(0).toString(16).toUpperCase() + ";";
+ });
+ var c = (function (t) {
+ function r() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(r, t),
+ (r.prototype.visitTree = function (t) {
+ return this.visitNode(t, "");
+ }),
+ (r.prototype.visitTextNode = function (t, e) {
+ return this.quoteHTML(t.getText());
+ }),
+ (r.prototype.visitXMLNode = function (t, e) {
+ return e + t.getSerializedXML();
+ }),
+ (r.prototype.visitInferredMrowNode = function (t, e) {
+ var r,
+ n,
+ o = [];
+ try {
+ for (var s = i(t.childNodes), a = s.next(); !a.done; a = s.next()) {
+ var l = a.value;
+ o.push(this.visitNode(l, e));
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ a && !a.done && (n = s.return) && n.call(s);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ return o.join("\n");
+ }),
+ (r.prototype.visitTeXAtomNode = function (t, e) {
+ var r = this.childNodeMml(t, e + " ", "\n");
+ return (
+ e +
+ "" +
+ (r.match(/\S/) ? "\n" + r + e : "") +
+ ""
+ );
+ }),
+ (r.prototype.visitAnnotationNode = function (t, e) {
+ return (
+ e +
+ "" +
+ this.childNodeMml(t, "", "") +
+ ""
+ );
+ }),
+ (r.prototype.visitDefault = function (t, e) {
+ var r = t.kind,
+ n = s(
+ t.isToken || 0 === t.childNodes.length ? ["", ""] : ["\n", e],
+ 2,
+ ),
+ o = n[0],
+ i = n[1],
+ a = this.childNodeMml(t, e + " ", o);
+ return (
+ e +
+ "<" +
+ r +
+ this.getAttributes(t) +
+ ">" +
+ (a.match(/\S/) ? o + a + i : "") +
+ "" +
+ r +
+ ">"
+ );
+ }),
+ (r.prototype.childNodeMml = function (t, e, r) {
+ var n,
+ o,
+ s = "";
+ try {
+ for (var a = i(t.childNodes), l = a.next(); !l.done; l = a.next()) {
+ var u = l.value;
+ s += this.visitNode(u, e) + r;
+ }
+ } catch (t) {
+ n = { error: t };
+ } finally {
+ try {
+ l && !l.done && (o = a.return) && o.call(a);
+ } finally {
+ if (n) throw n.error;
+ }
+ }
+ return s;
+ }),
+ (r.prototype.getAttributes = function (t) {
+ var e,
+ r,
+ n = [],
+ o = this.constructor.defaultAttributes[t.kind] || {},
+ s = Object.assign(
+ {},
+ o,
+ this.getDataAttributes(t),
+ t.attributes.getAllAttributes(),
+ ),
+ a = this.constructor.variants;
+ s.hasOwnProperty("mathvariant") &&
+ a.hasOwnProperty(s.mathvariant) &&
+ (s.mathvariant = a[s.mathvariant]);
+ try {
+ for (
+ var l = i(Object.keys(s)), u = l.next();
+ !u.done;
+ u = l.next()
+ ) {
+ var c = u.value,
+ p = String(s[c]);
+ void 0 !== p && n.push(c + '="' + this.quoteHTML(p) + '"');
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ u && !u.done && (r = l.return) && r.call(l);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ return n.length ? " " + n.join(" ") : "";
+ }),
+ (r.prototype.getDataAttributes = function (t) {
+ var e = {},
+ r = t.attributes.getExplicit("mathvariant"),
+ n = this.constructor.variants;
+ r && n.hasOwnProperty(r) && this.setDataAttribute(e, "variant", r),
+ t.getProperty("variantForm") &&
+ this.setDataAttribute(e, "alternate", "1");
+ var o = t.getProperty("texClass");
+ if (void 0 !== o) {
+ var i = !0;
+ if (o === l.TEXCLASS.OP && t.isKind("mi")) {
+ var s = t.getText();
+ i = !(s.length > 1 && s.match(u.MmlMi.operatorName));
+ }
+ i &&
+ this.setDataAttribute(
+ e,
+ "texclass",
+ o < 0 ? "NONE" : l.TEXCLASSNAMES[o],
+ );
+ }
+ return e;
+ }),
+ (r.prototype.setDataAttribute = function (t, r, n) {
+ t[e.DATAMJX + r] = n;
+ }),
+ (r.prototype.quoteHTML = function (t) {
+ return t
+ .replace(/&/g, "&")
+ .replace(//g, ">")
+ .replace(/\"/g, """)
+ .replace(/[\uD800-\uDBFF]./g, e.toEntity)
+ .replace(/[\u0080-\uD7FF\uE000-\uFFFF]/g, e.toEntity);
+ }),
+ (r.variants = {
+ "-tex-calligraphic": "script",
+ "-tex-calligraphic-bold": "bold-script",
+ "-tex-oldstyle": "normal",
+ "-tex-oldstyle-bold": "bold",
+ "-tex-mathit": "italic",
+ }),
+ (r.defaultAttributes = {
+ math: { xmlns: "http://www.w3.org/1998/Math/MathML" },
+ }),
+ r
+ );
+ })(a.MmlVisitor);
+ e.SerializedMmlVisitor = c;
+ },
+ function (t, e, r) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.AbstractWrapper = void 0);
+ var n = (function () {
+ function t(t, e) {
+ (this.factory = t), (this.node = e);
+ }
+ return (
+ Object.defineProperty(t.prototype, "kind", {
+ get: function () {
+ return this.node.kind;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (t.prototype.wrap = function (t) {
+ return this.factory.wrap(t);
+ }),
+ t
+ );
+ })();
+ e.AbstractWrapper = n;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n,
+ o =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__read) ||
+ function (t, e) {
+ var r = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!r) return t;
+ var n,
+ o,
+ i = r.call(t),
+ s = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(n = i.next()).done; )
+ s.push(n.value);
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ n && !n.done && (r = i.return) && r.call(i);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ return s;
+ },
+ s =
+ (this && this.__spread) ||
+ function () {
+ for (var t = [], e = 0; e < arguments.length; e++)
+ t = t.concat(i(arguments[e]));
+ return t;
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.AbstractWrapperFactory = void 0);
+ var a = (function (t) {
+ function e() {
+ return (null !== t && t.apply(this, arguments)) || this;
+ }
+ return (
+ o(e, t),
+ (e.prototype.wrap = function (t) {
+ for (var e = [], r = 1; r < arguments.length; r++)
+ e[r - 1] = arguments[r];
+ return this.create.apply(this, s([t.kind, t], e));
+ }),
+ e
+ );
+ })(r(10).AbstractFactory);
+ e.AbstractWrapperFactory = a;
+ },
+ function (t, e, r) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.RegisterHTMLHandler = void 0);
+ var n = r(17),
+ o = r(5);
+ e.RegisterHTMLHandler = function (t) {
+ var e = new o.HTMLHandler(t);
+ return n.mathjax.handlers.register(e), e;
+ };
+ },
+ function (t, e, r) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.BBox = e.BBoxStyleAdjust = void 0);
+ var n = r(65);
+ e.BBoxStyleAdjust = [
+ ["borderTopWidth", "h"],
+ ["borderRightWidth", "w"],
+ ["borderBottomWidth", "d"],
+ ["borderLeftWidth", "w", 0],
+ ["paddingTop", "h"],
+ ["paddingRight", "w"],
+ ["paddingBottom", "d"],
+ ["paddingLeft", "w", 0],
+ ];
+ var o = (function () {
+ function t(t) {
+ void 0 === t && (t = { w: 0, h: -n.BIGDIMEN, d: -n.BIGDIMEN }),
+ (this.w = t.w || 0),
+ (this.h = "h" in t ? t.h : -n.BIGDIMEN),
+ (this.d = "d" in t ? t.d : -n.BIGDIMEN),
+ (this.L = this.R = this.ic = this.sk = 0),
+ (this.scale = this.rscale = 1),
+ (this.pwidth = "");
+ }
+ return (
+ (t.zero = function () {
+ return new t({ h: 0, d: 0, w: 0 });
+ }),
+ (t.empty = function () {
+ return new t();
+ }),
+ (t.prototype.empty = function () {
+ return (this.w = 0), (this.h = this.d = -n.BIGDIMEN), this;
+ }),
+ (t.prototype.clean = function () {
+ this.w === -n.BIGDIMEN && (this.w = 0),
+ this.h === -n.BIGDIMEN && (this.h = 0),
+ this.d === -n.BIGDIMEN && (this.d = 0);
+ }),
+ (t.prototype.rescale = function (t) {
+ (this.w *= t), (this.h *= t), (this.d *= t);
+ }),
+ (t.prototype.combine = function (t, e, r) {
+ void 0 === e && (e = 0), void 0 === r && (r = 0);
+ var n = t.rscale,
+ o = e + n * (t.w + t.L + t.R),
+ i = r + n * t.h,
+ s = n * t.d - r;
+ o > this.w && (this.w = o),
+ i > this.h && (this.h = i),
+ s > this.d && (this.d = s);
+ }),
+ (t.prototype.append = function (t) {
+ var e = t.rscale;
+ (this.w += e * (t.w + t.L + t.R)),
+ e * t.h > this.h && (this.h = e * t.h),
+ e * t.d > this.d && (this.d = e * t.d);
+ }),
+ (t.prototype.updateFrom = function (t) {
+ (this.h = t.h),
+ (this.d = t.d),
+ (this.w = t.w),
+ t.pwidth && (this.pwidth = t.pwidth);
+ }),
+ (t.fullWidth = "100%"),
+ t
+ );
+ })();
+ e.BBox = o;
+ },
+ function (t, e, r) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.numeric =
+ e.translate =
+ e.remove =
+ e.add =
+ e.entities =
+ e.options =
+ void 0);
+ var n = r(18),
+ o = r(64);
+ (e.options = { loadMissingEntities: !0 }),
+ (e.entities = {
+ ApplyFunction: "\u2061",
+ Backslash: "\u2216",
+ Because: "\u2235",
+ Breve: "\u02d8",
+ Cap: "\u22d2",
+ CenterDot: "\xb7",
+ CircleDot: "\u2299",
+ CircleMinus: "\u2296",
+ CirclePlus: "\u2295",
+ CircleTimes: "\u2297",
+ Congruent: "\u2261",
+ ContourIntegral: "\u222e",
+ Coproduct: "\u2210",
+ Cross: "\u2a2f",
+ Cup: "\u22d3",
+ CupCap: "\u224d",
+ Dagger: "\u2021",
+ Del: "\u2207",
+ Delta: "\u0394",
+ Diamond: "\u22c4",
+ DifferentialD: "\u2146",
+ DotEqual: "\u2250",
+ DoubleDot: "\xa8",
+ DoubleRightTee: "\u22a8",
+ DoubleVerticalBar: "\u2225",
+ DownArrow: "\u2193",
+ DownLeftVector: "\u21bd",
+ DownRightVector: "\u21c1",
+ DownTee: "\u22a4",
+ Downarrow: "\u21d3",
+ Element: "\u2208",
+ EqualTilde: "\u2242",
+ Equilibrium: "\u21cc",
+ Exists: "\u2203",
+ ExponentialE: "\u2147",
+ FilledVerySmallSquare: "\u25aa",
+ ForAll: "\u2200",
+ Gamma: "\u0393",
+ Gg: "\u22d9",
+ GreaterEqual: "\u2265",
+ GreaterEqualLess: "\u22db",
+ GreaterFullEqual: "\u2267",
+ GreaterLess: "\u2277",
+ GreaterSlantEqual: "\u2a7e",
+ GreaterTilde: "\u2273",
+ Hacek: "\u02c7",
+ Hat: "^",
+ HumpDownHump: "\u224e",
+ HumpEqual: "\u224f",
+ Im: "\u2111",
+ ImaginaryI: "\u2148",
+ Integral: "\u222b",
+ Intersection: "\u22c2",
+ InvisibleComma: "\u2063",
+ InvisibleTimes: "\u2062",
+ Lambda: "\u039b",
+ Larr: "\u219e",
+ LeftAngleBracket: "\u27e8",
+ LeftArrow: "\u2190",
+ LeftArrowRightArrow: "\u21c6",
+ LeftCeiling: "\u2308",
+ LeftDownVector: "\u21c3",
+ LeftFloor: "\u230a",
+ LeftRightArrow: "\u2194",
+ LeftTee: "\u22a3",
+ LeftTriangle: "\u22b2",
+ LeftTriangleEqual: "\u22b4",
+ LeftUpVector: "\u21bf",
+ LeftVector: "\u21bc",
+ Leftarrow: "\u21d0",
+ Leftrightarrow: "\u21d4",
+ LessEqualGreater: "\u22da",
+ LessFullEqual: "\u2266",
+ LessGreater: "\u2276",
+ LessSlantEqual: "\u2a7d",
+ LessTilde: "\u2272",
+ Ll: "\u22d8",
+ Lleftarrow: "\u21da",
+ LongLeftArrow: "\u27f5",
+ LongLeftRightArrow: "\u27f7",
+ LongRightArrow: "\u27f6",
+ Longleftarrow: "\u27f8",
+ Longleftrightarrow: "\u27fa",
+ Longrightarrow: "\u27f9",
+ Lsh: "\u21b0",
+ MinusPlus: "\u2213",
+ NestedGreaterGreater: "\u226b",
+ NestedLessLess: "\u226a",
+ NotDoubleVerticalBar: "\u2226",
+ NotElement: "\u2209",
+ NotEqual: "\u2260",
+ NotExists: "\u2204",
+ NotGreater: "\u226f",
+ NotGreaterEqual: "\u2271",
+ NotLeftTriangle: "\u22ea",
+ NotLeftTriangleEqual: "\u22ec",
+ NotLess: "\u226e",
+ NotLessEqual: "\u2270",
+ NotPrecedes: "\u2280",
+ NotPrecedesSlantEqual: "\u22e0",
+ NotRightTriangle: "\u22eb",
+ NotRightTriangleEqual: "\u22ed",
+ NotSubsetEqual: "\u2288",
+ NotSucceeds: "\u2281",
+ NotSucceedsSlantEqual: "\u22e1",
+ NotSupersetEqual: "\u2289",
+ NotTilde: "\u2241",
+ NotVerticalBar: "\u2224",
+ Omega: "\u03a9",
+ OverBar: "\u203e",
+ OverBrace: "\u23de",
+ PartialD: "\u2202",
+ Phi: "\u03a6",
+ Pi: "\u03a0",
+ PlusMinus: "\xb1",
+ Precedes: "\u227a",
+ PrecedesEqual: "\u2aaf",
+ PrecedesSlantEqual: "\u227c",
+ PrecedesTilde: "\u227e",
+ Product: "\u220f",
+ Proportional: "\u221d",
+ Psi: "\u03a8",
+ Rarr: "\u21a0",
+ Re: "\u211c",
+ ReverseEquilibrium: "\u21cb",
+ RightAngleBracket: "\u27e9",
+ RightArrow: "\u2192",
+ RightArrowLeftArrow: "\u21c4",
+ RightCeiling: "\u2309",
+ RightDownVector: "\u21c2",
+ RightFloor: "\u230b",
+ RightTee: "\u22a2",
+ RightTeeArrow: "\u21a6",
+ RightTriangle: "\u22b3",
+ RightTriangleEqual: "\u22b5",
+ RightUpVector: "\u21be",
+ RightVector: "\u21c0",
+ Rightarrow: "\u21d2",
+ Rrightarrow: "\u21db",
+ Rsh: "\u21b1",
+ Sigma: "\u03a3",
+ SmallCircle: "\u2218",
+ Sqrt: "\u221a",
+ Square: "\u25a1",
+ SquareIntersection: "\u2293",
+ SquareSubset: "\u228f",
+ SquareSubsetEqual: "\u2291",
+ SquareSuperset: "\u2290",
+ SquareSupersetEqual: "\u2292",
+ SquareUnion: "\u2294",
+ Star: "\u22c6",
+ Subset: "\u22d0",
+ SubsetEqual: "\u2286",
+ Succeeds: "\u227b",
+ SucceedsEqual: "\u2ab0",
+ SucceedsSlantEqual: "\u227d",
+ SucceedsTilde: "\u227f",
+ SuchThat: "\u220b",
+ Sum: "\u2211",
+ Superset: "\u2283",
+ SupersetEqual: "\u2287",
+ Supset: "\u22d1",
+ Therefore: "\u2234",
+ Theta: "\u0398",
+ Tilde: "\u223c",
+ TildeEqual: "\u2243",
+ TildeFullEqual: "\u2245",
+ TildeTilde: "\u2248",
+ UnderBar: "_",
+ UnderBrace: "\u23df",
+ Union: "\u22c3",
+ UnionPlus: "\u228e",
+ UpArrow: "\u2191",
+ UpDownArrow: "\u2195",
+ UpTee: "\u22a5",
+ Uparrow: "\u21d1",
+ Updownarrow: "\u21d5",
+ Upsilon: "\u03a5",
+ Vdash: "\u22a9",
+ Vee: "\u22c1",
+ VerticalBar: "\u2223",
+ VerticalTilde: "\u2240",
+ Vvdash: "\u22aa",
+ Wedge: "\u22c0",
+ Xi: "\u039e",
+ amp: "&",
+ acute: "\xb4",
+ aleph: "\u2135",
+ alpha: "\u03b1",
+ amalg: "\u2a3f",
+ and: "\u2227",
+ ang: "\u2220",
+ angmsd: "\u2221",
+ angsph: "\u2222",
+ ape: "\u224a",
+ backprime: "\u2035",
+ backsim: "\u223d",
+ backsimeq: "\u22cd",
+ beta: "\u03b2",
+ beth: "\u2136",
+ between: "\u226c",
+ bigcirc: "\u25ef",
+ bigodot: "\u2a00",
+ bigoplus: "\u2a01",
+ bigotimes: "\u2a02",
+ bigsqcup: "\u2a06",
+ bigstar: "\u2605",
+ bigtriangledown: "\u25bd",
+ bigtriangleup: "\u25b3",
+ biguplus: "\u2a04",
+ blacklozenge: "\u29eb",
+ blacktriangle: "\u25b4",
+ blacktriangledown: "\u25be",
+ blacktriangleleft: "\u25c2",
+ bowtie: "\u22c8",
+ boxdl: "\u2510",
+ boxdr: "\u250c",
+ boxminus: "\u229f",
+ boxplus: "\u229e",
+ boxtimes: "\u22a0",
+ boxul: "\u2518",
+ boxur: "\u2514",
+ bsol: "\\",
+ bull: "\u2022",
+ cap: "\u2229",
+ check: "\u2713",
+ chi: "\u03c7",
+ circ: "\u02c6",
+ circeq: "\u2257",
+ circlearrowleft: "\u21ba",
+ circlearrowright: "\u21bb",
+ circledR: "\xae",
+ circledS: "\u24c8",
+ circledast: "\u229b",
+ circledcirc: "\u229a",
+ circleddash: "\u229d",
+ clubs: "\u2663",
+ colon: ":",
+ comp: "\u2201",
+ ctdot: "\u22ef",
+ cuepr: "\u22de",
+ cuesc: "\u22df",
+ cularr: "\u21b6",
+ cup: "\u222a",
+ curarr: "\u21b7",
+ curlyvee: "\u22ce",
+ curlywedge: "\u22cf",
+ dagger: "\u2020",
+ daleth: "\u2138",
+ ddarr: "\u21ca",
+ deg: "\xb0",
+ delta: "\u03b4",
+ digamma: "\u03dd",
+ div: "\xf7",
+ divideontimes: "\u22c7",
+ dot: "\u02d9",
+ doteqdot: "\u2251",
+ dotplus: "\u2214",
+ dotsquare: "\u22a1",
+ dtdot: "\u22f1",
+ ecir: "\u2256",
+ efDot: "\u2252",
+ egs: "\u2a96",
+ ell: "\u2113",
+ els: "\u2a95",
+ empty: "\u2205",
+ epsi: "\u03b5",
+ epsiv: "\u03f5",
+ erDot: "\u2253",
+ eta: "\u03b7",
+ eth: "\xf0",
+ flat: "\u266d",
+ fork: "\u22d4",
+ frown: "\u2322",
+ gEl: "\u2a8c",
+ gamma: "\u03b3",
+ gap: "\u2a86",
+ gimel: "\u2137",
+ gnE: "\u2269",
+ gnap: "\u2a8a",
+ gne: "\u2a88",
+ gnsim: "\u22e7",
+ gt: ">",
+ gtdot: "\u22d7",
+ harrw: "\u21ad",
+ hbar: "\u210f",
+ hellip: "\u2026",
+ hookleftarrow: "\u21a9",
+ hookrightarrow: "\u21aa",
+ imath: "\u0131",
+ infin: "\u221e",
+ intcal: "\u22ba",
+ iota: "\u03b9",
+ jmath: "\u0237",
+ kappa: "\u03ba",
+ kappav: "\u03f0",
+ lEg: "\u2a8b",
+ lambda: "\u03bb",
+ lap: "\u2a85",
+ larrlp: "\u21ab",
+ larrtl: "\u21a2",
+ lbrace: "{",
+ lbrack: "[",
+ le: "\u2264",
+ leftleftarrows: "\u21c7",
+ leftthreetimes: "\u22cb",
+ lessdot: "\u22d6",
+ lmoust: "\u23b0",
+ lnE: "\u2268",
+ lnap: "\u2a89",
+ lne: "\u2a87",
+ lnsim: "\u22e6",
+ longmapsto: "\u27fc",
+ looparrowright: "\u21ac",
+ lowast: "\u2217",
+ loz: "\u25ca",
+ lt: "<",
+ ltimes: "\u22c9",
+ ltri: "\u25c3",
+ macr: "\xaf",
+ malt: "\u2720",
+ mho: "\u2127",
+ mu: "\u03bc",
+ multimap: "\u22b8",
+ nLeftarrow: "\u21cd",
+ nLeftrightarrow: "\u21ce",
+ nRightarrow: "\u21cf",
+ nVDash: "\u22af",
+ nVdash: "\u22ae",
+ natur: "\u266e",
+ nearr: "\u2197",
+ nharr: "\u21ae",
+ nlarr: "\u219a",
+ not: "\xac",
+ nrarr: "\u219b",
+ nu: "\u03bd",
+ nvDash: "\u22ad",
+ nvdash: "\u22ac",
+ nwarr: "\u2196",
+ omega: "\u03c9",
+ omicron: "\u03bf",
+ or: "\u2228",
+ osol: "\u2298",
+ period: ".",
+ phi: "\u03c6",
+ phiv: "\u03d5",
+ pi: "\u03c0",
+ piv: "\u03d6",
+ prap: "\u2ab7",
+ precnapprox: "\u2ab9",
+ precneqq: "\u2ab5",
+ precnsim: "\u22e8",
+ prime: "\u2032",
+ psi: "\u03c8",
+ quot: '"',
+ rarrtl: "\u21a3",
+ rbrace: "}",
+ rbrack: "]",
+ rho: "\u03c1",
+ rhov: "\u03f1",
+ rightrightarrows: "\u21c9",
+ rightthreetimes: "\u22cc",
+ ring: "\u02da",
+ rmoust: "\u23b1",
+ rtimes: "\u22ca",
+ rtri: "\u25b9",
+ scap: "\u2ab8",
+ scnE: "\u2ab6",
+ scnap: "\u2aba",
+ scnsim: "\u22e9",
+ sdot: "\u22c5",
+ searr: "\u2198",
+ sect: "\xa7",
+ sharp: "\u266f",
+ sigma: "\u03c3",
+ sigmav: "\u03c2",
+ simne: "\u2246",
+ smile: "\u2323",
+ spades: "\u2660",
+ sub: "\u2282",
+ subE: "\u2ac5",
+ subnE: "\u2acb",
+ subne: "\u228a",
+ supE: "\u2ac6",
+ supnE: "\u2acc",
+ supne: "\u228b",
+ swarr: "\u2199",
+ tau: "\u03c4",
+ theta: "\u03b8",
+ thetav: "\u03d1",
+ tilde: "\u02dc",
+ times: "\xd7",
+ triangle: "\u25b5",
+ triangleq: "\u225c",
+ upsi: "\u03c5",
+ upuparrows: "\u21c8",
+ veebar: "\u22bb",
+ vellip: "\u22ee",
+ weierp: "\u2118",
+ xi: "\u03be",
+ yen: "\xa5",
+ zeta: "\u03b6",
+ zigrarr: "\u21dd",
+ });
+ var i = {};
+ function s(t, r) {
+ if ("#" === r.charAt(0)) return a(r.slice(1));
+ if (e.entities[r]) return e.entities[r];
+ if (e.options.loadMissingEntities) {
+ var s = r.match(/^[a-zA-Z](fr|scr|opf)$/)
+ ? RegExp.$1
+ : r.charAt(0).toLowerCase();
+ i[s] ||
+ ((i[s] = !0),
+ n.retryAfter(o.asyncLoad("./util/entities/" + s + ".js")));
+ }
+ return t;
+ }
+ function a(t) {
+ var e = "x" === t.charAt(0) ? parseInt(t.slice(1), 16) : parseInt(t);
+ return String.fromCodePoint(e);
+ }
+ (e.add = function (t, r) {
+ Object.assign(e.entities, t), (i[r] = !0);
+ }),
+ (e.remove = function (t) {
+ delete e.entities[t];
+ }),
+ (e.translate = function (t) {
+ return t.replace(/&([a-z][a-z0-9]*|#(?:[0-9]+|x[0-9a-f]+));/gi, s);
+ }),
+ (e.numeric = a);
+ },
+ function (t, e, r) {
+ "use strict";
+ var n =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.CssStyles = void 0);
+ var o = (function () {
+ function t(t) {
+ void 0 === t && (t = null), (this.styles = {}), this.addStyles(t);
+ }
+ return (
+ Object.defineProperty(t.prototype, "cssText", {
+ get: function () {
+ return this.getStyleString();
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (t.prototype.addStyles = function (t) {
+ var e, r;
+ if (t)
+ try {
+ for (
+ var o = n(Object.keys(t)), i = o.next();
+ !i.done;
+ i = o.next()
+ ) {
+ var s = i.value;
+ this.styles[s] || (this.styles[s] = {}),
+ Object.assign(this.styles[s], t[s]);
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ i && !i.done && (r = o.return) && r.call(o);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ }),
+ (t.prototype.removeStyles = function () {
+ for (var t, e, r = [], o = 0; o < arguments.length; o++)
+ r[o] = arguments[o];
+ try {
+ for (var i = n(r), s = i.next(); !s.done; s = i.next()) {
+ var a = s.value;
+ delete this.styles[a];
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ s && !s.done && (e = i.return) && e.call(i);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ }),
+ (t.prototype.clear = function () {
+ this.styles = {};
+ }),
+ (t.prototype.getStyleString = function () {
+ var t,
+ e,
+ r = Object.keys(this.styles),
+ o = new Array(r.length),
+ i = 0;
+ try {
+ for (var s = n(r), a = s.next(); !a.done; a = s.next()) {
+ var l = a.value;
+ o[i++] =
+ l + " {\n" + this.getStyleDefString(this.styles[l]) + "\n}";
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ a && !a.done && (e = s.return) && e.call(s);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ return o.join("\n\n");
+ }),
+ (t.prototype.getStyleDefString = function (t) {
+ var e,
+ r,
+ o = Object.keys(t),
+ i = new Array(o.length),
+ s = 0;
+ try {
+ for (var a = n(o), l = a.next(); !l.done; l = a.next()) {
+ var u = l.value;
+ i[s++] = " " + u + ": " + t[u] + ";";
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ l && !l.done && (r = a.return) && r.call(a);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ return i.join("\n");
+ }),
+ t
+ );
+ })();
+ e.CssStyles = o;
+ },
+ function (t, e, r) {
+ "use strict";
+ var n =
+ (this && this.__values) ||
+ function (t) {
+ var e = "function" == typeof Symbol && Symbol.iterator,
+ r = e && t[e],
+ n = 0;
+ if (r) return r.call(t);
+ if (t && "number" == typeof t.length)
+ return {
+ next: function () {
+ return (
+ t && n >= t.length && (t = void 0),
+ { value: t && t[n++], done: !t }
+ );
+ },
+ };
+ throw new TypeError(
+ e ? "Object is not iterable." : "Symbol.iterator is not defined.",
+ );
+ },
+ o =
+ (this && this.__read) ||
+ function (t, e) {
+ var r = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!r) return t;
+ var n,
+ o,
+ i = r.call(t),
+ s = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(n = i.next()).done; )
+ s.push(n.value);
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ n && !n.done && (r = i.return) && r.call(i);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ return s;
+ },
+ i =
+ (this && this.__spread) ||
+ function () {
+ for (var t = [], e = 0; e < arguments.length; e++)
+ t = t.concat(o(arguments[e]));
+ return t;
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }), (e.Styles = void 0);
+ var s = ["top", "right", "bottom", "left"],
+ a = ["width", "style", "color"];
+ function l(t) {
+ for (
+ var e = t.split(/((?:'[^']*'|"[^"]*"|,[\s\n]|[^\s\n])*)/g), r = [];
+ e.length > 1;
+ )
+ e.shift(), r.push(e.shift());
+ return r;
+ }
+ function u(t) {
+ var e,
+ r,
+ o = l(this.styles[t]);
+ 0 === o.length && o.push(""),
+ 1 === o.length && o.push(o[0]),
+ 2 === o.length && o.push(o[0]),
+ 3 === o.length && o.push(o[1]);
+ try {
+ for (
+ var i = n(m.connect[t].children), s = i.next();
+ !s.done;
+ s = i.next()
+ ) {
+ var a = s.value;
+ this.setStyle(this.childName(t, a), o.shift());
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ s && !s.done && (r = i.return) && r.call(i);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ }
+ function c(t) {
+ var e,
+ r,
+ o = m.connect[t].children,
+ i = [];
+ try {
+ for (var s = n(o), a = s.next(); !a.done; a = s.next()) {
+ var l = a.value,
+ u = this.styles[t + "-" + l];
+ if (!u) return void delete this.styles[t];
+ i.push(u);
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ a && !a.done && (r = s.return) && r.call(s);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ i[3] === i[1] &&
+ (i.pop(), i[2] === i[0] && (i.pop(), i[1] === i[0] && i.pop())),
+ (this.styles[t] = i.join(" "));
+ }
+ function p(t) {
+ var e, r;
+ try {
+ for (
+ var o = n(m.connect[t].children), i = o.next();
+ !i.done;
+ i = o.next()
+ ) {
+ var s = i.value;
+ this.setStyle(this.childName(t, s), this.styles[t]);
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ i && !i.done && (r = o.return) && r.call(o);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ }
+ function f(t) {
+ var e,
+ r,
+ o = i(m.connect[t].children),
+ s = this.styles[this.childName(t, o.shift())];
+ try {
+ for (var a = n(o), l = a.next(); !l.done; l = a.next()) {
+ var u = l.value;
+ if (this.styles[this.childName(t, u)] !== s)
+ return void delete this.styles[t];
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ l && !l.done && (r = a.return) && r.call(a);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ this.styles[t] = s;
+ }
+ var h = /^(?:[\d.]+(?:[a-z]+)|thin|medium|thick|inherit|initial|unset)$/,
+ d =
+ /^(?:none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset|inherit|initial|unset)$/;
+ function y(t) {
+ var e,
+ r,
+ o,
+ i,
+ s = { width: "", style: "", color: "" };
+ try {
+ for (
+ var a = n(l(this.styles[t])), u = a.next();
+ !u.done;
+ u = a.next()
+ ) {
+ var c = u.value;
+ c.match(h) && "" === s.width
+ ? (s.width = c)
+ : c.match(d) && "" === s.style
+ ? (s.style = c)
+ : (s.color = c);
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ u && !u.done && (r = a.return) && r.call(a);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ try {
+ for (
+ var p = n(m.connect[t].children), f = p.next();
+ !f.done;
+ f = p.next()
+ ) {
+ var y = f.value;
+ this.setStyle(this.childName(t, y), s[y]);
+ }
+ } catch (t) {
+ o = { error: t };
+ } finally {
+ try {
+ f && !f.done && (i = p.return) && i.call(p);
+ } finally {
+ if (o) throw o.error;
+ }
+ }
+ }
+ function O(t) {
+ var e,
+ r,
+ o = [];
+ try {
+ for (
+ var i = n(m.connect[t].children), s = i.next();
+ !s.done;
+ s = i.next()
+ ) {
+ var a = s.value,
+ l = this.styles[this.childName(t, a)];
+ l && o.push(l);
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ s && !s.done && (r = i.return) && r.call(i);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ o.length ? (this.styles[t] = o.join(" ")) : delete this.styles[t];
+ }
+ var M = {
+ style: /^(?:normal|italic|oblique|inherit|initial|unset)$/,
+ variant: new RegExp(
+ "^(?:" +
+ [
+ "normal|none",
+ "inherit|initial|unset",
+ "common-ligatures|no-common-ligatures",
+ "discretionary-ligatures|no-discretionary-ligatures",
+ "historical-ligatures|no-historical-ligatures",
+ "contextual|no-contextual",
+ "(?:stylistic|character-variant|swash|ornaments|annotation)\\([^)]*\\)",
+ "small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps",
+ "lining-nums|oldstyle-nums|proportional-nums|tabular-nums",
+ "diagonal-fractions|stacked-fractions",
+ "ordinal|slashed-zero",
+ "jis78|jis83|jis90|jis04|simplified|traditional",
+ "full-width|proportional-width",
+ "ruby",
+ ].join("|") +
+ ")$",
+ ),
+ weight: /^(?:normal|bold|bolder|lighter|[1-9]00|inherit|initial|unset)$/,
+ stretch: new RegExp(
+ "^(?:" +
+ [
+ "normal",
+ "(?:(?:ultra|extra|semi)-)?condensed",
+ "(?:(?:semi|extra|ulta)-)?expanded",
+ "inherit|initial|unset",
+ ].join("|") +
+ ")$",
+ ),
+ size: new RegExp(
+ "^(?:" +
+ [
+ "xx-small|x-small|small|medium|large|x-large|xx-large|larger|smaller",
+ "[d.]+%|[d.]+[a-z]+",
+ "inherit|initial|unset",
+ ].join("|") +
+ ")(?:/(?:normal|[d.+](?:%|[a-z]+)?))?$",
+ ),
+ };
+ function E(t) {
+ var e,
+ r,
+ i,
+ s,
+ a = l(this.styles[t]),
+ u = {
+ style: "",
+ variant: [],
+ weight: "",
+ stretch: "",
+ size: "",
+ family: "",
+ "line-height": "",
+ };
+ try {
+ for (var c = n(a), p = c.next(); !p.done; p = c.next()) {
+ var f = p.value;
+ u.family = f;
+ try {
+ for (
+ var h = ((i = void 0), n(Object.keys(M))), d = h.next();
+ !d.done;
+ d = h.next()
+ ) {
+ var y = d.value;
+ if ((Array.isArray(u[y]) || "" === u[y]) && f.match(M[y]))
+ if ("size" === y) {
+ var O = o(f.split(/\//), 2),
+ E = O[0],
+ v = O[1];
+ (u[y] = E), v && (u["line-height"] = v);
+ } else
+ "" === u.size &&
+ (Array.isArray(u[y]) ? u[y].push(f) : (u[y] = f));
+ }
+ } catch (t) {
+ i = { error: t };
+ } finally {
+ try {
+ d && !d.done && (s = h.return) && s.call(h);
+ } finally {
+ if (i) throw i.error;
+ }
+ }
+ }
+ } catch (t) {
+ e = { error: t };
+ } finally {
+ try {
+ p && !p.done && (r = c.return) && r.call(c);
+ } finally {
+ if (e) throw e.error;
+ }
+ }
+ !(function (t, e) {
+ var r, o;
+ try {
+ for (
+ var i = n(m.connect[t].children), s = i.next();
+ !s.done;
+ s = i.next()
+ ) {
+ var a = s.value,
+ l = this.childName(t, a);
+ if (Array.isArray(e[a])) {
+ var u = e[a];
+ u.length && (this.styles[l] = u.join(" "));
+ } else "" !== e[a] && (this.styles[l] = e[a]);
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ s && !s.done && (o = i.return) && o.call(i);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ })(t, u),
+ delete this.styles[t];
+ }
+ function v(t) {}
+ var m = (function () {
+ function t(t) {
+ void 0 === t && (t = ""), this.parse(t);
+ }
+ return (
+ Object.defineProperty(t.prototype, "cssText", {
+ get: function () {
+ var t,
+ e,
+ r = [];
+ try {
+ for (
+ var o = n(Object.keys(this.styles)), i = o.next();
+ !i.done;
+ i = o.next()
+ ) {
+ var s = i.value,
+ a = this.parentName(s);
+ this.styles[a] || r.push(s + ": " + this.styles[s]);
+ }
+ } catch (e) {
+ t = { error: e };
+ } finally {
+ try {
+ i && !i.done && (e = o.return) && e.call(o);
+ } finally {
+ if (t) throw t.error;
+ }
+ }
+ return r.join("; ");
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (t.prototype.set = function (e, r) {
+ for (
+ e = this.normalizeName(e),
+ this.setStyle(e, r),
+ t.connect[e] &&
+ !t.connect[e].combine &&
+ (this.combineChildren(e), delete this.styles[e]);
+ e.match(/-/) && ((e = this.parentName(e)), t.connect[e]);
+ )
+ t.connect[e].combine.call(this, e);
+ }),
+ (t.prototype.get = function (t) {
+ return (
+ (t = this.normalizeName(t)),
+ this.styles.hasOwnProperty(t) ? this.styles[t] : ""
+ );
+ }),
+ (t.prototype.setStyle = function (e, r) {
+ (this.styles[e] = r),
+ t.connect[e] &&
+ t.connect[e].children &&
+ t.connect[e].split.call(this, e),
+ "" === r && delete this.styles[e];
+ }),
+ (t.prototype.combineChildren = function (e) {
+ var r,
+ o,
+ i = this.parentName(e);
+ try {
+ for (
+ var s = n(t.connect[e].children), a = s.next();
+ !a.done;
+ a = s.next()
+ ) {
+ var l = a.value,
+ u = this.childName(i, l);
+ t.connect[u].combine.call(this, u);
+ }
+ } catch (t) {
+ r = { error: t };
+ } finally {
+ try {
+ a && !a.done && (o = s.return) && o.call(s);
+ } finally {
+ if (r) throw r.error;
+ }
+ }
+ }),
+ (t.prototype.parentName = function (t) {
+ var e = t.replace(/-[^-]*$/, "");
+ return t === e ? "" : e;
+ }),
+ (t.prototype.childName = function (e, r) {
+ return r.match(/-/)
+ ? r
+ : (t.connect[e] &&
+ !t.connect[e].combine &&
+ ((r += e.replace(/.*-/, "-")), (e = this.parentName(e))),
+ e + "-" + r);
+ }),
+ (t.prototype.normalizeName = function (t) {
+ return t.replace(/[A-Z]/g, function (t) {
+ return "-" + t.toLowerCase();
+ });
+ }),
+ (t.prototype.parse = function (t) {
+ void 0 === t && (t = "");
+ var e = this.constructor.pattern;
+ this.styles = {};
+ for (
+ var r = t.replace(e.comment, "").split(e.style);
+ r.length > 1;
+ ) {
+ var n = o(r.splice(0, 3), 3),
+ i = n[0],
+ s = n[1],
+ a = n[2];
+ if (i.match(/[^\s\n]/)) return;
+ this.set(s, a);
+ }
+ }),
+ (t.pattern = {
+ style:
+ /([-a-z]+)[\s\n]*:[\s\n]*((?:'[^']*'|"[^"]*"|\n|.)*?)[\s\n]*(?:;|$)/g,
+ comment: /\/\*[^]*?\*\//g,
+ }),
+ (t.connect = {
+ padding: { children: s, split: u, combine: c },
+ border: { children: s, split: p, combine: f },
+ "border-top": { children: a, split: y, combine: O },
+ "border-right": { children: a, split: y, combine: O },
+ "border-bottom": { children: a, split: y, combine: O },
+ "border-left": { children: a, split: y, combine: O },
+ "border-width": { children: s, split: u, combine: null },
+ "border-style": { children: s, split: u, combine: null },
+ "border-color": { children: s, split: u, combine: null },
+ font: {
+ children: [
+ "style",
+ "variant",
+ "weight",
+ "stretch",
+ "line-height",
+ "size",
+ "family",
+ ],
+ split: E,
+ combine: v,
+ },
+ }),
+ t
+ );
+ })();
+ e.Styles = m;
+ },
+ function (t, e, r) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.max = e.sum = void 0),
+ (e.sum = function (t) {
+ return t.reduce(function (t, e) {
+ return t + e;
+ }, 0);
+ }),
+ (e.max = function (t) {
+ return t.reduce(function (t, e) {
+ return Math.max(t, e);
+ }, 0);
+ });
+ },
+ function (t, e) {
+ var r;
+ r = (function () {
+ return this;
+ })();
+ try {
+ r = r || new Function("return this")();
+ } catch (t) {
+ "object" == typeof window && (r = window);
+ }
+ t.exports = r;
+ },
+ function (t, e, r) {
+ "use strict";
+ r.r(e);
+ var n = r(19),
+ o = r(21),
+ i = r(20),
+ s = r(22),
+ a = r(66),
+ l = r(23),
+ u = r(58),
+ c = r(24),
+ p = r(6),
+ f = r(4),
+ h = r(8),
+ d = r(2),
+ y = r(28),
+ O = r(67),
+ M = r(9),
+ E = r(0),
+ v = r(55),
+ m = r(45),
+ b = r(51),
+ g = r(52),
+ L = r(29),
+ N = r(56),
+ R = r(44),
+ T = r(40),
+ A = r(43),
+ _ = r(36),
+ S = r(53),
+ C = r(12),
+ x = r(47),
+ I = r(30),
+ P = r(13),
+ w = r(41),
+ j = r(42),
+ D = r(38),
+ B = r(35),
+ k = r(34),
+ X = r(33),
+ H = r(37),
+ W = r(39),
+ F = r(14),
+ q = r(48),
+ G = r(50),
+ J = r(32),
+ z = r(49),
+ V = r(46),
+ U = r(54),
+ K = r(16),
+ $ = r(31),
+ Y = r(68),
+ Z = r(25),
+ Q = r(10),
+ tt = r(11),
+ et = r(27),
+ rt = r(59),
+ nt = r(69),
+ ot = r(70),
+ it = r(71),
+ st = r(60),
+ at = r(63),
+ lt = r(5),
+ ut = r(61),
+ ct = r(62),
+ pt = r(17),
+ ft = r(64),
+ ht = r(72),
+ dt = r(57),
+ yt = r(73),
+ Ot = r(7),
+ Mt = r(26),
+ Et = r(1),
+ vt = r(3),
+ mt = r(18),
+ bt = r(74),
+ gt = r(75),
+ Lt = r(65),
+ Nt = r(76),
+ Rt = r(15);
+ Object(n.combineWithMathJax)({
+ _: {
+ adaptors: { HTMLAdaptor: o, browserAdaptor: i },
+ components: { global: n },
+ core: {
+ DOMAdaptor: s,
+ FindMath: a,
+ Handler: l,
+ HandlerList: u,
+ InputJax: c,
+ MathDocument: p,
+ MathItem: f,
+ MathList: h,
+ MmlTree: {
+ Attributes: d,
+ MML: y,
+ MathMLVisitor: O,
+ MmlFactory: M,
+ MmlNode: E,
+ MmlNodes: {
+ TeXAtom: v,
+ maction: m,
+ maligngroup: b,
+ malignmark: g,
+ math: L,
+ mathchoice: N,
+ menclose: R,
+ merror: T,
+ mfenced: A,
+ mfrac: _,
+ mglyph: S,
+ mi: C,
+ mmultiscripts: x,
+ mn: I,
+ mo: P,
+ mpadded: w,
+ mphantom: j,
+ mroot: D,
+ mrow: B,
+ ms: k,
+ mspace: X,
+ msqrt: H,
+ mstyle: W,
+ msubsup: F,
+ mtable: q,
+ mtd: G,
+ mtext: J,
+ mtr: z,
+ munderover: V,
+ semantics: U,
+ },
+ MmlVisitor: K,
+ OperatorDictionary: $,
+ SerializedMmlVisitor: Y,
+ },
+ OutputJax: Z,
+ Tree: {
+ Factory: Q,
+ Node: tt,
+ NodeFactory: et,
+ Visitor: rt,
+ Wrapper: nt,
+ WrapperFactory: ot,
+ },
+ },
+ handlers: {
+ html_ts: it,
+ html: {
+ HTMLDocument: st,
+ HTMLDomStrings: at,
+ HTMLHandler: lt,
+ HTMLMathItem: ut,
+ HTMLMathList: ct,
+ },
+ },
+ mathjax: pt,
+ util: {
+ AsyncLoad: ft,
+ BBox: ht,
+ BitField: dt,
+ Entities: yt,
+ FunctionList: Ot,
+ LinkedList: Mt,
+ Options: Et,
+ PrioritizedList: vt,
+ Retries: mt,
+ StyleList: bt,
+ Styles: gt,
+ lengths: Lt,
+ numeric: Nt,
+ string: Rt,
+ },
+ },
+ }),
+ MathJax.startup &&
+ (MathJax.startup.registerConstructor("HTMLHandler", lt.HTMLHandler),
+ MathJax.startup.registerConstructor("browserAdaptor", i.browserAdaptor),
+ MathJax.startup.useHandler("HTMLHandler"),
+ MathJax.startup.useAdaptor("browserAdaptor")),
+ MathJax.loader &&
+ (MathJax._.mathjax.mathjax.asyncLoad = function (t) {
+ return MathJax.loader.load(t);
+ });
+ },
+]);
diff --git a/assets/bower_components/MathJax/es5/input/asciimath.js b/assets/bower_components/MathJax/es5/input/asciimath.js
new file mode 100644
index 0000000..346c5e2
--- /dev/null
+++ b/assets/bower_components/MathJax/es5/input/asciimath.js
@@ -0,0 +1,5788 @@
+!(function (t) {
+ var e = {};
+ function i(n) {
+ if (e[n]) return e[n].exports;
+ var a = (e[n] = { i: n, l: !1, exports: {} });
+ return t[n].call(a.exports, a, a.exports, i), (a.l = !0), a.exports;
+ }
+ (i.m = t),
+ (i.c = e),
+ (i.d = function (t, e, n) {
+ i.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: n });
+ }),
+ (i.r = function (t) {
+ "undefined" != typeof Symbol &&
+ Symbol.toStringTag &&
+ Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }),
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ }),
+ (i.t = function (t, e) {
+ if ((1 & e && (t = i(t)), 8 & e)) return t;
+ if (4 & e && "object" == typeof t && t && t.__esModule) return t;
+ var n = Object.create(null);
+ if (
+ (i.r(n),
+ Object.defineProperty(n, "default", { enumerable: !0, value: t }),
+ 2 & e && "string" != typeof t)
+ )
+ for (var a in t)
+ i.d(
+ n,
+ a,
+ function (e) {
+ return t[e];
+ }.bind(null, a),
+ );
+ return n;
+ }),
+ (i.n = function (t) {
+ var e =
+ t && t.__esModule
+ ? function () {
+ return t.default;
+ }
+ : function () {
+ return t;
+ };
+ return i.d(e, "a", e), e;
+ }),
+ (i.o = function (t, e) {
+ return Object.prototype.hasOwnProperty.call(t, e);
+ }),
+ (i.p = ""),
+ i((i.s = 16));
+})([
+ function (t, e, i) {
+ "use strict";
+ var n,
+ a =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function i() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((i.prototype = e.prototype), new i()));
+ }),
+ s =
+ (this && this.__assign) ||
+ function () {
+ return (s =
+ Object.assign ||
+ function (t) {
+ for (var e, i = 1, n = arguments.length; i < n; i++)
+ for (var a in (e = arguments[i]))
+ Object.prototype.hasOwnProperty.call(e, a) && (t[a] = e[a]);
+ return t;
+ }).apply(this, arguments);
+ },
+ r =
+ (this && this.__read) ||
+ function (t, e) {
+ var i = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!i) return t;
+ var n,
+ a,
+ s = i.call(t),
+ r = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(n = s.next()).done; )
+ r.push(n.value);
+ } catch (t) {
+ a = { error: t };
+ } finally {
+ try {
+ n && !n.done && (i = s.return) && i.call(s);
+ } finally {
+ if (a) throw a.error;
+ }
+ }
+ return r;
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.AsciiMath = void 0);
+ var o = i(3),
+ l = i(4),
+ u = i(12),
+ h = i(1),
+ p = (function (t) {
+ function e(i) {
+ var n = this,
+ a = r(u.separateOptions(i, h.FindAsciiMath.OPTIONS, e.OPTIONS), 3),
+ s = a[1],
+ o = a[2];
+ return (
+ ((n = t.call(this, o) || this).findAsciiMath =
+ n.options.FindAsciiMath || new h.FindAsciiMath(s)),
+ n
+ );
+ }
+ return (
+ a(e, t),
+ (e.prototype.compile = function (t, e) {
+ return l.LegacyAsciiMath.Compile(t.math, t.display);
+ }),
+ (e.prototype.findMath = function (t) {
+ return this.findAsciiMath.findMath(t);
+ }),
+ (e.NAME = "AsciiMath"),
+ (e.OPTIONS = s(s({}, o.AbstractInputJax.OPTIONS), {
+ FindAsciiMath: null,
+ })),
+ e
+ );
+ })(o.AbstractInputJax);
+ e.AsciiMath = p;
+ },
+ function (t, e, i) {
+ "use strict";
+ var n,
+ a =
+ (this && this.__extends) ||
+ ((n = function (t, e) {
+ return (n =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function i() {
+ this.constructor = t;
+ }
+ n(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((i.prototype = e.prototype), new i()));
+ }),
+ s =
+ (this && this.__read) ||
+ function (t, e) {
+ var i = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!i) return t;
+ var n,
+ a,
+ s = i.call(t),
+ r = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(n = s.next()).done; )
+ r.push(n.value);
+ } catch (t) {
+ a = { error: t };
+ } finally {
+ try {
+ n && !n.done && (i = s.return) && i.call(s);
+ } finally {
+ if (a) throw a.error;
+ }
+ }
+ return r;
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.FindAsciiMath = void 0);
+ var r = i(13),
+ o = i(14),
+ l = i(15),
+ u = (function (t) {
+ function e(e) {
+ var i = t.call(this, e) || this;
+ return i.getPatterns(), i;
+ }
+ return (
+ a(e, t),
+ (e.prototype.getPatterns = function () {
+ var t = this,
+ e = this.options,
+ i = [];
+ (this.end = {}),
+ e.delimiters.forEach(function (e) {
+ return t.addPattern(i, e, !1);
+ }),
+ (this.start = new RegExp(i.join("|"), "g")),
+ (this.hasPatterns = i.length > 0);
+ }),
+ (e.prototype.addPattern = function (t, e, i) {
+ var n = s(e, 2),
+ a = n[0],
+ r = n[1];
+ t.push(o.quotePattern(a)),
+ (this.end[a] = [r, i, new RegExp(o.quotePattern(r), "g")]);
+ }),
+ (e.prototype.findEnd = function (t, e, i, n) {
+ var a = s(n, 3),
+ r = a[1],
+ o = a[2],
+ u = (o.lastIndex = i.index + i[0].length),
+ h = o.exec(t);
+ return h
+ ? l.protoItem(
+ i[0],
+ t.substr(u, h.index - u),
+ h[0],
+ e,
+ i.index,
+ h.index + h[0].length,
+ r,
+ )
+ : null;
+ }),
+ (e.prototype.findMathInString = function (t, e, i) {
+ var n, a;
+ for (this.start.lastIndex = 0; (n = this.start.exec(i)); )
+ (a = this.findEnd(i, e, n, this.end[n[0]])) &&
+ (t.push(a), (this.start.lastIndex = a.end.n));
+ }),
+ (e.prototype.findMath = function (t) {
+ var e = [];
+ if (this.hasPatterns)
+ for (var i = 0, n = t.length; i < n; i++)
+ this.findMathInString(e, i, t[i]);
+ return e;
+ }),
+ (e.OPTIONS = { delimiters: [["`", "`"]] }),
+ e
+ );
+ })(r.AbstractFindMath);
+ e.FindAsciiMath = u;
+ },
+ function (t, e, i) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.isObject = MathJax._.components.global.isObject),
+ (e.combineConfig = MathJax._.components.global.combineConfig),
+ (e.combineDefaults = MathJax._.components.global.combineDefaults),
+ (e.combineWithMathJax = MathJax._.components.global.combineWithMathJax),
+ (e.MathJax = MathJax._.components.global.MathJax);
+ },
+ function (t, e, i) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.AbstractInputJax = MathJax._.core.InputJax.AbstractInputJax);
+ },
+ function (t, e, i) {
+ (function (t) {
+ (MathJax = Object.assign(t.MathJax || {}, i(6).MathJax)),
+ MathJax.config &&
+ MathJax.config.asciimath &&
+ MathJax.Hub.Config({ AsciiMath: MathJax.config.asciimath }),
+ MathJax.Ajax.Preloading(
+ "[MathJax]/jax/input/AsciiMath/config.js",
+ "[MathJax]/jax/input/AsciiMath/jax.js",
+ "[MathJax]/jax/element/mml/jax.js",
+ ),
+ i(7),
+ i(8),
+ i(9),
+ i(10);
+ var n = new (0, i(11).MmlFactory)();
+ e.LegacyAsciiMath = {
+ Compile: function (t, e) {
+ var i = { type: "math/asciimath", innerText: t, MathJax: {} },
+ a = MathJax.InputJax.AsciiMath.Translate(i).root.toMmlNode(n);
+ return a.setInheritedAttributes({}, e, 0, !1), a;
+ },
+ Translate: function (t, e) {
+ return this.Compile(t, e);
+ },
+ };
+ }).call(this, i(5));
+ },
+ function (t, e) {
+ var i;
+ i = (function () {
+ return this;
+ })();
+ try {
+ i = i || new Function("return this")();
+ } catch (t) {
+ "object" == typeof window && (i = window);
+ }
+ t.exports = i;
+ },
+ function (t, e) {
+ var i,
+ n,
+ a,
+ s,
+ r,
+ o,
+ l = { debug: !0 },
+ u = { MathJax: l },
+ h = {},
+ p = null;
+ (e.MathJax = l),
+ (function (t) {
+ var e = u.MathJax;
+ e || (e = u.MathJax = {});
+ var i = [],
+ n = function (t) {
+ var e = t.constructor;
+ for (var i in (e || (e = function () {}), t))
+ "constructor" !== i && t.hasOwnProperty(i) && (e[i] = t[i]);
+ return e;
+ };
+ (e.Object = n({
+ constructor: function () {
+ return arguments.callee.Init.call(this, arguments);
+ },
+ Subclass: function (t, e) {
+ var n = function () {
+ return arguments.callee.Init.call(this, arguments);
+ };
+ return (
+ (n.SUPER = this),
+ (n.Init = this.Init),
+ (n.Subclass = this.Subclass),
+ (n.Augment = this.Augment),
+ (n.protoFunction = this.protoFunction),
+ (n.can = this.can),
+ (n.has = this.has),
+ (n.isa = this.isa),
+ (n.prototype = new this(i)),
+ (n.prototype.constructor = n),
+ n.Augment(t, e),
+ n
+ );
+ },
+ Init: function (t) {
+ var e = this;
+ return 1 === t.length && t[0] === i
+ ? e
+ : (e instanceof t.callee || (e = new t.callee(i)),
+ e.Init.apply(e, t) || e);
+ },
+ Augment: function (t, e) {
+ var i;
+ if (null != t) {
+ for (i in t) t.hasOwnProperty(i) && this.protoFunction(i, t[i]);
+ t.toString !== this.prototype.toString &&
+ t.toString !== {}.toString &&
+ this.protoFunction("toString", t.toString);
+ }
+ if (null != e) for (i in e) e.hasOwnProperty(i) && (this[i] = e[i]);
+ return this;
+ },
+ protoFunction: function (t, e) {
+ (this.prototype[t] = e),
+ "function" == typeof e && (e.SUPER = this.SUPER.prototype);
+ },
+ prototype: {
+ Init: function () {},
+ SUPER: function (t) {
+ return t.callee.SUPER;
+ },
+ can: function (t) {
+ return "function" == typeof this[t];
+ },
+ has: function (t) {
+ return void 0 !== this[t];
+ },
+ isa: function (t) {
+ return t instanceof Object && this instanceof t;
+ },
+ },
+ can: function (t) {
+ return this.prototype.can.call(this, t);
+ },
+ has: function (t) {
+ return this.prototype.has.call(this, t);
+ },
+ isa: function (t) {
+ for (var e = this; e; ) {
+ if (e === t) return !0;
+ e = e.SUPER;
+ }
+ return !1;
+ },
+ SimpleSUPER: n({
+ constructor: function (t) {
+ return this.SimpleSUPER.define(t);
+ },
+ define: function (t) {
+ var e = {};
+ if (null != t) {
+ for (var i in t)
+ t.hasOwnProperty(i) && (e[i] = this.wrap(i, t[i]));
+ t.toString !== this.prototype.toString &&
+ t.toString !== {}.toString &&
+ (e.toString = this.wrap("toString", t.toString));
+ }
+ return e;
+ },
+ wrap: function (t, e) {
+ if (
+ "function" != typeof e ||
+ !e.toString().match(/\.\s*SUPER\s*\(/)
+ )
+ return e;
+ var i = function () {
+ this.SUPER = i.SUPER[t];
+ try {
+ var n = e.apply(this, arguments);
+ } catch (t) {
+ throw (delete this.SUPER, t);
+ }
+ return delete this.SUPER, n;
+ };
+ return (
+ (i.toString = function () {
+ return e.toString.apply(e, arguments);
+ }),
+ i
+ );
+ },
+ }),
+ })),
+ (e.Object.isArray =
+ Array.isArray ||
+ function (t) {
+ return "[object Array]" === Object.prototype.toString.call(t);
+ }),
+ (e.Object.Array = Array);
+ })(),
+ (function (t) {
+ var e = u.MathJax;
+ e || (e = u.MathJax = {});
+ var i = function (t) {
+ var e = function () {
+ return arguments.callee.execute.apply(arguments.callee, arguments);
+ };
+ for (var n in i.prototype)
+ i.prototype.hasOwnProperty(n) &&
+ (e[n] = void 0 !== t[n] ? t[n] : i.prototype[n]);
+ return (e.toString = i.prototype.toString), e;
+ };
+ i.prototype = {
+ isCallback: !0,
+ hook: function () {},
+ data: [],
+ object: u,
+ execute: function () {
+ if (!this.called || this.autoReset)
+ return (
+ (this.called = !this.autoReset),
+ this.hook.apply(
+ this.object,
+ this.data.concat([].slice.call(arguments, 0)),
+ )
+ );
+ },
+ reset: function () {
+ delete this.called;
+ },
+ toString: function () {
+ return this.hook.toString.apply(this.hook, arguments);
+ },
+ };
+ var n = function (t) {
+ return "function" == typeof t && t.isCallback;
+ },
+ a = function (t) {
+ return eval.call(u, t);
+ },
+ s = function () {
+ if ((a("var __TeSt_VaR__ = 1"), u.__TeSt_VaR__))
+ try {
+ delete u.__TeSt_VaR__;
+ } catch (t) {
+ u.__TeSt_VaR__ = null;
+ }
+ else
+ a = u.execScript
+ ? function (t) {
+ (e.__code = t),
+ (t =
+ "try {MathJax.__result = eval(MathJax.__code)} catch(err) {MathJax.__result = err}"),
+ u.execScript(t);
+ var i = e.__result;
+ if (
+ (delete e.__result, delete e.__code, i instanceof Error)
+ )
+ throw i;
+ return i;
+ }
+ : function (t) {
+ (e.__code = t),
+ (t =
+ "try {MathJax.__result = eval(MathJax.__code)} catch(err) {MathJax.__result = err}");
+ var i = p.getElementsByTagName("head")[0];
+ i || (i = p.body);
+ var n = p.createElement("script");
+ n.appendChild(p.createTextNode(t)),
+ i.appendChild(n),
+ i.removeChild(n);
+ var a = e.__result;
+ if (
+ (delete e.__result, delete e.__code, a instanceof Error)
+ )
+ throw a;
+ return a;
+ };
+ s = null;
+ },
+ r = function (t, e) {
+ if (
+ (arguments.length > 1 &&
+ (t =
+ 2 === arguments.length &&
+ "function" != typeof arguments[0] &&
+ arguments[0] instanceof Object &&
+ "number" == typeof arguments[1]
+ ? [].slice.call(t, e)
+ : [].slice.call(arguments, 0)),
+ t instanceof Array && 1 === t.length && (t = t[0]),
+ "function" == typeof t)
+ )
+ return t.execute === i.prototype.execute ? t : i({ hook: t });
+ if (t instanceof Array) {
+ if (
+ "string" == typeof t[0] &&
+ t[1] instanceof Object &&
+ "function" == typeof t[1][t[0]]
+ )
+ return i({ hook: t[1][t[0]], object: t[1], data: t.slice(2) });
+ if ("function" == typeof t[0])
+ return i({ hook: t[0], data: t.slice(1) });
+ if ("function" == typeof t[1])
+ return i({ hook: t[1], object: t[0], data: t.slice(2) });
+ } else {
+ if ("string" == typeof t)
+ return s && s(), i({ hook: a, data: [t] });
+ if (t instanceof Object) return i(t);
+ if (void 0 === t) return i({});
+ }
+ throw Error("Can't make callback from given data");
+ },
+ o = function (t, e) {
+ (t = r(t)).called || (c(t, e), e.pending++);
+ },
+ h = function () {
+ var t = this.signal;
+ delete this.signal,
+ (this.execute = this.oldExecute),
+ delete this.oldExecute;
+ var e = this.execute.apply(this, arguments);
+ if (n(e) && !e.called) c(e, t);
+ else
+ for (var i = 0, a = t.length; i < a; i++)
+ t[i].pending--, t[i].pending <= 0 && t[i].call();
+ },
+ c = function (t, e) {
+ e instanceof Array || (e = [e]),
+ t.signal
+ ? 1 === e.length
+ ? t.signal.push(e[0])
+ : (t.signal = t.signal.concat(e))
+ : ((t.oldExecute = t.execute), (t.execute = h), (t.signal = e));
+ },
+ d = function (t) {
+ (t = r(t)).pending = 0;
+ for (var e = 1, i = arguments.length; e < i; e++)
+ arguments[e] && o(arguments[e], t);
+ if (0 === t.pending) {
+ var a = t();
+ n(a) && (t = a);
+ }
+ return t;
+ },
+ m = l.Object.Subclass({
+ Init: function (t) {
+ (this.hooks = []),
+ (this.remove = []),
+ (this.reset = t),
+ (this.running = !1);
+ },
+ Add: function (t, e) {
+ null == e && (e = 10), n(t) || (t = r(t)), (t.priority = e);
+ for (
+ var i = this.hooks.length;
+ i > 0 && e < this.hooks[i - 1].priority;
+ )
+ i--;
+ return this.hooks.splice(i, 0, t), t;
+ },
+ Remove: function (t) {
+ for (var e = 0, i = this.hooks.length; e < i; e++)
+ if (this.hooks[e] === t)
+ return void (this.running
+ ? this.remove.push(e)
+ : this.hooks.splice(e, 1));
+ },
+ Execute: function () {
+ var t = [{}];
+ this.running = !0;
+ for (var e = 0, i = this.hooks.length; e < i; e++) {
+ this.reset && this.hooks[e].reset();
+ var a = this.hooks[e].apply(u, arguments);
+ n(a) && !a.called && t.push(a);
+ }
+ return (
+ (this.running = !1),
+ this.remove.length && this.RemovePending(),
+ 1 === t.length ? null : 2 === t.length ? t[1] : d.apply({}, t)
+ );
+ },
+ RemovePending: function () {
+ this.remove = this.remove.sort();
+ for (var t = this.remove.length - 1; t >= 0; t--)
+ this.hooks.splice(t, 1);
+ this.remove = [];
+ },
+ }),
+ f = e.Object.Subclass({
+ Init: function () {
+ (this.pending = this.running = 0),
+ (this.queue = []),
+ this.Push.apply(this, arguments);
+ },
+ Push: function () {
+ for (var t, e = 0, i = arguments.length; e < i; e++)
+ (t = r(arguments[e])) !== arguments[e] ||
+ t.called ||
+ (t = r(["wait", this, t])),
+ this.queue.push(t);
+ return this.running || this.pending || this.Process(), t;
+ },
+ Process: function (t) {
+ for (; !this.running && !this.pending && this.queue.length; ) {
+ var e = this.queue[0];
+ (t = this.queue.slice(1)), (this.queue = []), this.Suspend();
+ var i = e();
+ this.Resume(),
+ t.length && (this.queue = t.concat(this.queue)),
+ n(i) && !i.called && o(i, this);
+ }
+ },
+ Suspend: function () {
+ this.running++;
+ },
+ Resume: function () {
+ this.running && this.running--;
+ },
+ call: function () {
+ this.Process.apply(this, arguments);
+ },
+ wait: function (t) {
+ return t;
+ },
+ }),
+ g = f.Subclass(
+ {
+ Init: function (t) {
+ f.prototype.Init.call(this),
+ (this.name = t),
+ (this.posted = []),
+ (this.listeners = m(!0)),
+ (this.posting = !1),
+ (this.callback = null);
+ },
+ Post: function (t, e, i) {
+ if (((e = r(e)), this.posting || this.pending))
+ this.Push(["Post", this, t, e, i]);
+ else {
+ (this.callback = e),
+ e.reset(),
+ i || this.posted.push(t),
+ this.Suspend(),
+ (this.posting = !0);
+ var a = this.listeners.Execute(t);
+ n(a) && !a.called && o(a, this),
+ this.Resume(),
+ (this.posting = !1),
+ this.pending || this.call();
+ }
+ return e;
+ },
+ Clear: function (t) {
+ return (
+ (t = r(t)),
+ this.posting || this.pending
+ ? (t = this.Push(["Clear", this, t]))
+ : ((this.posted = []), t()),
+ t
+ );
+ },
+ call: function () {
+ this.callback(this), this.Process();
+ },
+ Interest: function (t, e, i) {
+ if (((t = r(t)), this.listeners.Add(t, i), !e))
+ for (var a = 0, s = this.posted.length; a < s; a++) {
+ t.reset();
+ var l = t(this.posted[a]);
+ n(l) && a === this.posted.length - 1 && o(l, this);
+ }
+ return t;
+ },
+ NoInterest: function (t) {
+ this.listeners.Remove(t);
+ },
+ MessageHook: function (t, e, i) {
+ (e = r(e)),
+ this.hooks ||
+ ((this.hooks = {}), this.Interest(["ExecuteHooks", this])),
+ this.hooks[t] || (this.hooks[t] = m(!0)),
+ this.hooks[t].Add(e, i);
+ for (var n = 0, a = this.posted.length; n < a; n++)
+ this.posted[n] == t && (e.reset(), e(this.posted[n]));
+ return (e.msg = t), e;
+ },
+ ExecuteHooks: function (t) {
+ var e = t instanceof Array ? t[0] : t;
+ return this.hooks[e] ? this.hooks[e].Execute(t) : null;
+ },
+ RemoveHook: function (t) {
+ this.hooks[t.msg].Remove(t);
+ },
+ },
+ {
+ signals: {},
+ find: function (t) {
+ return g.signals[t] || (g.signals[t] = new g(t)), g.signals[t];
+ },
+ },
+ );
+ (e.Callback = e.CallBack = r),
+ (e.Callback.Delay = function (t, e) {
+ return ((e = r(e)).timeout = setTimeout(e, t)), e;
+ }),
+ (e.Callback.After = d),
+ (e.Callback.Queue = f),
+ (e.Callback.Signal = g.find),
+ (e.Callback.Hooks = m),
+ (e.Callback.ExecuteHooks = function (t, e, i) {
+ if (!t) return null;
+ t instanceof Array || (t = [t]),
+ e instanceof Array || (e = null == e ? [] : [e]);
+ for (var n = m(i), a = 0, s = t.length; a < s; a++) n.Add(t[a]);
+ return n.Execute.apply(n, e);
+ });
+ })(),
+ (function (t) {
+ var e = u.MathJax;
+ e || (e = u.MathJax = {});
+ var i = "Apple Computer, Inc." === h.vendor && void 0 === h.vendorSub,
+ n = 0,
+ a = [],
+ s = function () {
+ for (var t = 0, i = a.length; t < i; t++)
+ e.Ajax.head.removeChild(a[t]);
+ a = [];
+ },
+ r = { MathJax: "" };
+ e.Ajax = {
+ loaded: {},
+ loading: {},
+ loadHooks: {},
+ timeout: 15e3,
+ styleDelay: 1,
+ config: { root: "", path: r },
+ STATUS: { OK: 1, ERROR: -1 },
+ fileURL: function (t) {
+ var e = t.match(/^\[([-._a-z0-9]+)\]/i);
+ return (
+ e &&
+ e[1] in r &&
+ (t = (r[e[1]] || this.config.root) + t.substr(e[1].length + 2)),
+ t
+ );
+ },
+ fileName: function (t) {
+ var e = this.config.root;
+ if (t.substr(0, e.length) === e)
+ t = "[MathJax]" + t.substr(e.length);
+ else
+ for (var i in r)
+ if (
+ r.hasOwnProperty(i) &&
+ r[i] &&
+ t.substr(0, r[i].length) === r[i]
+ ) {
+ t = "[" + i + "]" + t.substr(r[i].length);
+ break;
+ }
+ return t;
+ },
+ fileRev: function (t) {
+ var i = e.cdnFileVersions[name] || e.cdnVersion;
+ return i && (i = "?rev=" + i), i;
+ },
+ urlRev: function (t) {
+ return this.fileURL(t) + this.fileRev(t);
+ },
+ Require: function (t, i) {
+ var n;
+ if (((i = e.Callback(i)), t instanceof Object))
+ for (var a in t)
+ t.hasOwnProperty(a) && ((n = a.toUpperCase()), (t = t[a]));
+ else n = t.split(/\./).pop().toUpperCase();
+ if (((t = this.fileURL(t)), this.loaded[t])) i(this.loaded[t]);
+ else {
+ var s = {};
+ (s[n] = t), this.Load(s, i);
+ }
+ return i;
+ },
+ Load: function (t, i) {
+ var n;
+ if (((i = e.Callback(i)), t instanceof Object))
+ for (var a in t)
+ t.hasOwnProperty(a) && ((n = a.toUpperCase()), (t = t[a]));
+ else n = t.split(/\./).pop().toUpperCase();
+ if (((t = this.fileURL(t)), this.loading[t])) this.addHook(t, i);
+ else {
+ if (((this.head = (this.head, null)), !this.loader[n]))
+ throw Error("Can't load files of type " + n);
+ this.loader[n].call(this, t, i);
+ }
+ return i;
+ },
+ LoadHook: function (t, i, n) {
+ if (((i = e.Callback(i)), t instanceof Object))
+ for (var a in t) t.hasOwnProperty(a) && (t = t[a]);
+ return (
+ (t = this.fileURL(t)),
+ this.loaded[t] ? i(this.loaded[t]) : this.addHook(t, i, n),
+ i
+ );
+ },
+ addHook: function (t, e, i) {
+ this.loadHooks[t] || (this.loadHooks[t] = l.Callback.Hooks()),
+ this.loadHooks[t].Add(e, i),
+ (e.file = t);
+ },
+ removeHook: function (t) {
+ this.loadHooks[t.file] &&
+ (this.loadHooks[t.file].Remove(t),
+ this.loadHooks[t.file].hooks.length ||
+ delete this.loadHooks[t.file]);
+ },
+ Preloading: function () {
+ for (var t = 0, e = arguments.length; t < e; t++) {
+ var i = this.fileURL(arguments[t]);
+ this.loading[i] ||
+ this.loaded[i] ||
+ (this.loading[i] = { preloaded: !0 });
+ }
+ },
+ loader: {
+ JS: function (t, i) {
+ var n = this.fileName(t),
+ a = e.Callback(["loadTimeout", this, t]);
+ (this.loading[t] = {
+ callback: i,
+ timeout: setTimeout(a, this.timeout),
+ status: this.STATUS.OK,
+ script: null,
+ }),
+ (this.loading[t].message = e.Message.File(n)),
+ u.System ? u.System.import(t).catch(a) : a();
+ },
+ CSS: function (t, i) {
+ var n = this.fileName(t),
+ a = p.createElement("link");
+ (a.rel = "stylesheet"),
+ (a.type = "text/css"),
+ (a.href = t + this.fileRev(n)),
+ (this.loading[t] = {
+ callback: i,
+ message: e.Message.File(n),
+ status: this.STATUS.OK,
+ }),
+ this.head.appendChild(a),
+ this.timer.create.call(this, [this.timer.file, t], a);
+ },
+ },
+ timer: {
+ create: function (t, a) {
+ return (
+ (t = e.Callback(t)),
+ ("STYLE" === a.nodeName &&
+ a.styleSheet &&
+ void 0 !== a.styleSheet.cssText) ||
+ (u.chrome && "LINK" === a.nodeName)
+ ? t(this.STATUS.OK)
+ : i
+ ? this.timer.start(
+ this,
+ [this.timer.checkSafari2, n++, t],
+ this.styleDelay,
+ )
+ : this.timer.start(
+ this,
+ [this.timer.checkLength, a, t],
+ this.styleDelay,
+ ),
+ t
+ );
+ },
+ start: function (t, i, n, a) {
+ ((i = e.Callback(i)).execute = this.execute),
+ (i.time = this.time),
+ (i.STATUS = t.STATUS),
+ (i.timeout = a || t.timeout),
+ (i.delay = i.total = n || 0),
+ n ? setTimeout(i, n) : i();
+ },
+ time: function (t) {
+ return (
+ (this.total += this.delay),
+ (this.delay = Math.floor(1.05 * this.delay + 5)),
+ this.total >= this.timeout ? (t(this.STATUS.ERROR), 1) : 0
+ );
+ },
+ file: function (t, i) {
+ i < 0 ? e.Ajax.loadTimeout(t) : e.Ajax.loadComplete(t);
+ },
+ execute: function () {
+ this.hook.call(this.object, this, this.data[0], this.data[1]);
+ },
+ checkSafari2: function (t, e, i) {
+ t.time(i) ||
+ (p.styleSheets.length > e &&
+ p.styleSheets[e].cssRules &&
+ p.styleSheets[e].cssRules.length
+ ? i(t.STATUS.OK)
+ : setTimeout(t, t.delay));
+ },
+ checkLength: function (t, i, n) {
+ if (!t.time(n)) {
+ var a = 0,
+ s = i.sheet || i.styleSheet;
+ try {
+ (s.cssRules || s.rules || []).length > 0 && (a = 1);
+ } catch (t) {
+ (t.message.match(/protected variable|restricted URI/) ||
+ t.message.match(/Security error/)) &&
+ (a = 1);
+ }
+ a
+ ? setTimeout(e.Callback([n, t.STATUS.OK]), 0)
+ : setTimeout(t, t.delay);
+ }
+ },
+ },
+ loadComplete: function (t) {
+ t = this.fileURL(t);
+ var i = this.loading[t];
+ return (
+ i && !i.preloaded
+ ? (e.Message.Clear(i.message),
+ i.timeout && clearTimeout(i.timeout),
+ i.script &&
+ (0 === a.length && setTimeout(s, 0), a.push(i.script)),
+ (this.loaded[t] = i.status),
+ delete this.loading[t],
+ this.addHook(t, i.callback))
+ : (i && delete this.loading[t],
+ (this.loaded[t] = this.STATUS.OK),
+ (i = { status: this.STATUS.OK })),
+ this.loadHooks[t] ? this.loadHooks[t].Execute(i.status) : null
+ );
+ },
+ loadTimeout: function (t) {
+ this.loading[t].timeout && clearTimeout(this.loading[t].timeout),
+ (this.loading[t].status = this.STATUS.ERROR),
+ this.loadError(t),
+ this.loadComplete(t);
+ },
+ loadError: function (t) {
+ e.Message.Set(
+ ["LoadFailed", "File failed to load: %1", t],
+ null,
+ 2e3,
+ ),
+ e.Hub.signal.Post(["file load error", t]);
+ },
+ Styles: function (t, i) {
+ var n = this.StyleString(t);
+ if ("" === n) (i = e.Callback(i))();
+ else {
+ var a = p.createElement("style");
+ (a.type = "text/css"),
+ (this.head = (this.head, null)),
+ this.head.appendChild(a),
+ a.styleSheet && void 0 !== a.styleSheet.cssText
+ ? (a.styleSheet.cssText = n)
+ : a.appendChild(p.createTextNode(n)),
+ (i = this.timer.create.call(this, i, a));
+ }
+ return i;
+ },
+ StyleString: function (t) {
+ if ("string" == typeof t) return t;
+ var e,
+ i,
+ n = "";
+ for (e in t)
+ if (t.hasOwnProperty(e))
+ if ("string" == typeof t[e]) n += e + " {" + t[e] + "}\n";
+ else if (t[e] instanceof Array)
+ for (var a = 0; a < t[e].length; a++)
+ ((i = {})[e] = t[e][a]), (n += this.StyleString(i));
+ else if ("@media" === e.substr(0, 6))
+ n += e + " {" + this.StyleString(t[e]) + "}\n";
+ else if (null != t[e]) {
+ for (var s in ((i = []), t[e]))
+ t[e].hasOwnProperty(s) &&
+ null != t[e][s] &&
+ (i[i.length] = s + ": " + t[e][s]);
+ n += e + " {" + i.join("; ") + "}\n";
+ }
+ return n;
+ },
+ };
+ })(),
+ (l.HTML = {
+ setDocument: function (t) {
+ p = this.document = t;
+ },
+ Element: function (t, e, i) {
+ var n,
+ a = p.createElement(t);
+ if (e) {
+ if (e.hasOwnProperty("style")) {
+ var s = e.style;
+ for (n in ((e.style = {}), s))
+ s.hasOwnProperty(n) &&
+ (e.style[n.replace(/-([a-z])/g, this.ucMatch)] = s[n]);
+ }
+ for (n in (l.Hub.Insert(a, e), e))
+ ("role" !== n && "aria-" !== n.substr(0, 5)) ||
+ a.setAttribute(n, e[n]);
+ }
+ if (i) {
+ l.Object.isArray(i) || (i = [i]);
+ for (var r = 0, o = i.length; r < o; r++)
+ l.Object.isArray(i[r])
+ ? a.appendChild(this.Element(i[r][0], i[r][1], i[r][2]))
+ : "script" === t
+ ? this.setScript(a, i[r])
+ : a.appendChild(p.createTextNode(i[r]));
+ }
+ return a;
+ },
+ ucMatch: function (t, e) {
+ return e.toUpperCase();
+ },
+ addElement: function (t, e, i, n) {
+ return t.appendChild(this.Element(e, i, n));
+ },
+ TextNode: function (t) {
+ return p.createTextNode(t);
+ },
+ addText: function (t, e) {
+ return t.appendChild(this.TextNode(e));
+ },
+ setScript: function (t, e) {
+ if (this.setScriptBug) t.text = e;
+ else {
+ for (; t.firstChild; ) t.removeChild(t.firstChild);
+ this.addText(t, e);
+ }
+ },
+ getScript: function (t) {
+ return t.innerText;
+ },
+ }),
+ (l.Localization = {
+ locale: "en",
+ directory: "[MathJax]/localization",
+ strings: {
+ ast: { menuTitle: "asturianu" },
+ bg: {
+ menuTitle: "\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438",
+ },
+ bcc: { menuTitle: "\u0628\u0644\u0648\u0686\u06cc" },
+ br: { menuTitle: "brezhoneg" },
+ ca: { menuTitle: "catal\xe0" },
+ cdo: { menuTitle: "M\xecng-d\u0115\u0324ng-ng\u1e73\u0304" },
+ cs: { menuTitle: "\u010de\u0161tina" },
+ da: { menuTitle: "dansk" },
+ de: { menuTitle: "Deutsch" },
+ en: { menuTitle: "English", isLoaded: !0 },
+ eo: { menuTitle: "Esperanto" },
+ es: { menuTitle: "espa\xf1ol" },
+ fa: { menuTitle: "\u0641\u0627\u0631\u0633\u06cc" },
+ fi: { menuTitle: "suomi" },
+ fr: { menuTitle: "fran\xe7ais" },
+ gl: { menuTitle: "galego" },
+ he: { menuTitle: "\u05e2\u05d1\u05e8\u05d9\u05ea" },
+ ia: { menuTitle: "interlingua" },
+ it: { menuTitle: "italiano" },
+ ja: { menuTitle: "\u65e5\u672c\u8a9e" },
+ kn: { menuTitle: "\u0c95\u0ca8\u0ccd\u0ca8\u0ca1" },
+ ko: { menuTitle: "\ud55c\uad6d\uc5b4" },
+ lb: { menuTitle: "L\xebtzebuergesch" },
+ lt: { menuTitle: "lietuvi\u0173" },
+ mk: {
+ menuTitle:
+ "\u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438",
+ },
+ nl: { menuTitle: "Nederlands" },
+ oc: { menuTitle: "occitan" },
+ pl: { menuTitle: "polski" },
+ pt: { menuTitle: "portugus\xea" },
+ "pt-br": { menuTitle: "portugu\xeas do Brasil" },
+ ru: { menuTitle: "\u0440\u0443\u0441\u0441\u043a\u0438\u0439" },
+ sco: { menuTitle: "Scots" },
+ scn: { menuTitle: "sicilianu" },
+ sl: { menuTitle: "sloven\u0161\u010dina" },
+ sv: { menuTitle: "svenska" },
+ tr: { menuTitle: "T\xfcrk\xe7e" },
+ uk: {
+ menuTitle:
+ "\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430",
+ },
+ vi: { menuTitle: "Ti\u1ebfng Vi\u1ec7t" },
+ "zh-hans": { menuTitle: "\u4e2d\u6587\uff08\u7b80\u4f53\uff09" },
+ },
+ pattern:
+ /%(\d+|\{\d+\}|\{[a-z]+:\%\d+(?:\|(?:%\{\d+\}|%.|[^\}])*)+\}|.)/g,
+ SPLIT:
+ 3 === "axb".split(/(x)/).length
+ ? function (t, e) {
+ return t.split(e);
+ }
+ : function (t, e) {
+ var i,
+ n = [],
+ a = 0;
+ for (e.lastIndex = 0; (i = e.exec(t)); )
+ n.push(t.substr(a, i.index - a)),
+ n.push.apply(n, i.slice(1)),
+ (a = i.index + i[0].length);
+ return n.push(t.substr(a)), n;
+ },
+ _: function (t, e) {
+ return e instanceof Array
+ ? this.processSnippet(t, e)
+ : this.processString(
+ this.lookupPhrase(t, e),
+ [].slice.call(arguments, 2),
+ );
+ },
+ processString: function (t, e, i) {
+ var n, a;
+ for (n = 0, a = e.length; n < a; n++)
+ i && e[n] instanceof Array && (e[n] = this.processSnippet(i, e[n]));
+ var s = this.SPLIT(t, this.pattern);
+ for (n = 1, a = s.length; n < a; n += 2) {
+ var r = s[n].charAt(0);
+ if (r >= "0" && r <= "9")
+ (s[n] = e[s[n] - 1]),
+ "number" == typeof s[n] && (s[n] = this.number(s[n]));
+ else if ("{" === r)
+ if ((r = s[n].substr(1)) >= "0" && r <= "9")
+ (s[n] = e[s[n].substr(1, s[n].length - 2) - 1]),
+ "number" == typeof s[n] && (s[n] = this.number(s[n]));
+ else {
+ var o = s[n].match(/^\{([a-z]+):%(\d+)\|(.*)\}$/);
+ if (o)
+ if ("plural" === o[1]) {
+ var l = e[o[2] - 1];
+ if (void 0 === l) s[n] = "???";
+ else {
+ l = this.plural(l) - 1;
+ var u = o[3]
+ .replace(/(^|[^%])(%%)*%\|/g, "$1$2%\uefef")
+ .split(/\|/);
+ l >= 0 && l < u.length
+ ? (s[n] = this.processString(
+ u[l].replace(/\uEFEF/g, "|"),
+ e,
+ i,
+ ))
+ : (s[n] = "???");
+ }
+ } else s[n] = "%" + s[n];
+ }
+ null == s[n] && (s[n] = "???");
+ }
+ if (!i) return s.join("");
+ var h = [],
+ p = "";
+ for (n = 0; n < a; n++)
+ (p += s[n]),
+ ++n < a &&
+ (s[n] instanceof Array
+ ? (h.push(p), (h = h.concat(s[n])), (p = ""))
+ : (p += s[n]));
+ return "" !== p && h.push(p), h;
+ },
+ processSnippet: function (t, e) {
+ for (var i = [], n = 0, a = e.length; n < a; n++)
+ if (e[n] instanceof Array) {
+ var s = e[n];
+ if ("string" == typeof s[1]) {
+ var r = s[0];
+ r instanceof Array || (r = [t, r]);
+ var o = this.lookupPhrase(r, s[1]);
+ i = i.concat(this.processMarkdown(o, s.slice(2), t));
+ } else
+ s[1] instanceof Array
+ ? (i = i.concat(this.processSnippet.apply(this, s)))
+ : s.length >= 3
+ ? i.push([s[0], s[1], this.processSnippet(t, s[2])])
+ : i.push(e[n]);
+ } else i.push(e[n]);
+ return i;
+ },
+ markdownPattern:
+ /(%.)|(\*{1,3})((?:%.|.)+?)\2|(`+)((?:%.|.)+?)\4|\[((?:%.|.)+?)\]\(([^\s\)]+)\)/,
+ processMarkdown: function (t, e, i) {
+ for (
+ var n,
+ a = [],
+ s = t.split(this.markdownPattern),
+ r = s[0],
+ o = 1,
+ l = s.length;
+ o < l;
+ o += 8
+ )
+ s[o + 1]
+ ? ((n = this.processString(s[o + 2], e, i)) instanceof Array ||
+ (n = [n]),
+ (n = [["b", "i", "i"][s[o + 1].length - 1], {}, n]),
+ 3 === s[o + 1].length && (n = ["b", {}, n]))
+ : s[o + 3]
+ ? ((n = this.processString(
+ s[o + 4].replace(/^\s/, "").replace(/\s$/, ""),
+ e,
+ i,
+ )) instanceof Array || (n = [n]),
+ (n = ["code", {}, n]))
+ : s[o + 5]
+ ? ((n = this.processString(s[o + 5], e, i)) instanceof
+ Array || (n = [n]),
+ (n = [
+ "a",
+ {
+ href: this.processString(s[o + 6], e),
+ target: "_blank",
+ },
+ n,
+ ]))
+ : ((r += s[o]), (n = null)),
+ n && ((a = this.concatString(a, r, e, i)).push(n), (r = "")),
+ "" !== s[o + 7] && (r += s[o + 7]);
+ return (a = this.concatString(a, r, e, i));
+ },
+ concatString: function (t, e, i, n) {
+ return (
+ "" != e &&
+ ((e = this.processString(e, i, n)) instanceof Array || (e = [e]),
+ (t = t.concat(e))),
+ t
+ );
+ },
+ lookupPhrase: function (t, e, i) {
+ i || (i = "_"),
+ t instanceof Array && ((i = t[0] || "_"), (t = t[1] || ""));
+ var n = this.loadDomain(i);
+ n && l.Hub.RestartAfter(n);
+ var a = this.strings[this.locale];
+ if (a && a.domains && i in a.domains) {
+ var s = a.domains[i];
+ s.strings && t in s.strings && (e = s.strings[t]);
+ }
+ return e;
+ },
+ loadFile: function (t, e, i) {
+ ((i = l.Callback(i)),
+ (t = e.file || t).match(/\.js$/) || (t += ".js"),
+ t.match(/^([a-z]+:|\[MathJax\])/)) ||
+ (t =
+ (this.strings[this.locale].directory ||
+ this.directory + "/" + this.locale ||
+ "[MathJax]/localization/" + this.locale) +
+ "/" +
+ t);
+ var n = l.Ajax.Require(t, function () {
+ return (e.isLoaded = !0), i();
+ });
+ return n.called ? null : n;
+ },
+ loadDomain: function (t, e) {
+ var i,
+ n = this.strings[this.locale];
+ if (n) {
+ if (!n.isLoaded && (i = this.loadFile(this.locale, n)))
+ return l.Callback.Queue(i, ["loadDomain", this, t]).Push(e || {});
+ if (n.domains && t in n.domains) {
+ var a = n.domains[t];
+ if (!a.isLoaded && (i = this.loadFile(t, a)))
+ return l.Callback.Queue(i).Push(e);
+ }
+ }
+ return l.Callback(e)();
+ },
+ Try: function (t) {
+ (t = l.Callback(t)).autoReset = !0;
+ try {
+ t();
+ } catch (e) {
+ if (!e.restart) throw e;
+ l.Callback.After(["Try", this, t], e.restart);
+ }
+ },
+ resetLocale: function (t) {
+ if (t) {
+ for (t = t.toLowerCase(); !this.strings[t]; ) {
+ var e = t.lastIndexOf("-");
+ if (-1 === e) return;
+ t = t.substring(0, e);
+ }
+ var i = this.strings[t].remap;
+ this.locale = i || t;
+ }
+ },
+ setLocale: function (t) {
+ this.resetLocale(t), l.Menu && this.loadDomain("MathMenu");
+ },
+ addTranslation: function (t, e, i) {
+ var n = this.strings[t],
+ a = !1;
+ n || ((n = this.strings[t] = {}), (a = !0)),
+ n.domains || (n.domains = {}),
+ e && (n.domains[e] || (n.domains[e] = {}), (n = n.domains[e])),
+ l.Hub.Insert(n, i),
+ a && l.Menu.menu && l.Menu.CreateLocaleMenu();
+ },
+ setCSS: function (t) {
+ var e = this.strings[this.locale];
+ return (
+ e &&
+ (e.fontFamily && (t.style.fontFamily = e.fontFamily),
+ e.fontDirection &&
+ ((t.style.direction = e.fontDirection),
+ "rtl" === e.fontDirection && (t.style.textAlign = "right"))),
+ t
+ );
+ },
+ fontFamily: function () {
+ var t = this.strings[this.locale];
+ return t ? t.fontFamily : null;
+ },
+ fontDirection: function () {
+ var t = this.strings[this.locale];
+ return t ? t.fontDirection : null;
+ },
+ plural: function (t) {
+ var e = this.strings[this.locale];
+ return e && e.plural ? e.plural(t) : 1 == t ? 1 : 2;
+ },
+ number: function (t) {
+ var e = this.strings[this.locale];
+ return e && e.number ? e.number(t) : t;
+ },
+ }),
+ (l.Message = {
+ localize: function (t) {
+ return l.Localization._(t, t);
+ },
+ filterText: function (t, e, i) {
+ return (
+ "simple" === l.Hub.config.messageStyle &&
+ ("LoadFile" === i
+ ? (this.loading ||
+ (this.loading = this.localize("Loading") + " "),
+ (t = this.loading),
+ (this.loading += "."))
+ : "ProcessMath" === i
+ ? (this.processing ||
+ (this.processing = this.localize("Processing") + " "),
+ (t = this.processing),
+ (this.processing += "."))
+ : "TypesetMath" === i &&
+ (this.typesetting ||
+ (this.typesetting = this.localize("Typesetting") + " "),
+ (t = this.typesetting),
+ (this.typesetting += "."))),
+ t
+ );
+ },
+ Set: function (t, e, i) {
+ l.debug &&
+ (Array.isArray(t) &&
+ (t = l.Localization._.apply(l.Localization, t)),
+ console.log("Message: " + t));
+ },
+ Clear: function (t, e) {},
+ Remove: function () {},
+ File: function (t) {
+ return this.Set(["LoadFile", "Loading %1", t], null, null);
+ },
+ Log: function () {},
+ }),
+ (l.Hub = {
+ config: {
+ root: "./mathjax2/legacy",
+ config: [],
+ jax: [],
+ extensions: [],
+ preJax: null,
+ postJax: null,
+ displayAlign: "center",
+ displayIndent: "0",
+ preRemoveClass: "MathJax_Preview",
+ showProcessingMessages: !0,
+ messageStyle: "normal",
+ delayStartupUntil: "none",
+ skipStartupTypeset: !1,
+ elements: [],
+ positionToHash: !0,
+ showMathMenu: !0,
+ showMathMenuMSIE: !0,
+ menuSettings: {
+ zoom: "None",
+ CTRL: !1,
+ ALT: !1,
+ CMD: !1,
+ Shift: !1,
+ discoverable: !1,
+ zscale: "200%",
+ renderer: null,
+ font: "Auto",
+ context: "MathJax",
+ locale: null,
+ mpContext: !1,
+ mpMouse: !1,
+ texHints: !0,
+ FastPreview: null,
+ assistiveMML: null,
+ inTabOrder: !0,
+ semantics: !1,
+ },
+ errorSettings: {
+ message: [
+ "[",
+ ["MathProcessingError", "Math Processing Error"],
+ "]",
+ ],
+ style: { color: "#CC0000", "font-style": "italic" },
+ },
+ ignoreMMLattributes: {},
+ },
+ preProcessors: l.Callback.Hooks(!0),
+ inputJax: {},
+ outputJax: { order: {} },
+ processSectionDelay: 50,
+ processUpdateTime: 250,
+ processUpdateDelay: 10,
+ signal: l.Callback.Signal("Hub"),
+ Config: function (t) {
+ this.Insert(this.config, t),
+ this.config.Augment && this.Augment(this.config.Augment);
+ },
+ CombineConfig: function (t, e) {
+ for (
+ var i, n, a = this.config, s = 0, r = (t = t.split(/\./)).length;
+ s < r;
+ s++
+ )
+ a[(i = t[s])] || (a[i] = {}), (n = a), (a = a[i]);
+ return (n[i] = a = this.Insert(e, a)), a;
+ },
+ Register: {
+ PreProcessor: function () {
+ return l.Hub.preProcessors.Add.apply(
+ l.Hub.preProcessors,
+ arguments,
+ );
+ },
+ MessageHook: function () {
+ return l.Hub.signal.MessageHook.apply(l.Hub.signal, arguments);
+ },
+ StartupHook: function () {
+ return l.Hub.Startup.signal.MessageHook.apply(
+ l.Hub.Startup.signal,
+ arguments,
+ );
+ },
+ LoadHook: function () {
+ return l.Ajax.LoadHook.apply(l.Ajax, arguments);
+ },
+ },
+ UnRegister: {
+ PreProcessor: function (t) {
+ l.Hub.preProcessors.Remove(t);
+ },
+ MessageHook: function (t) {
+ l.Hub.signal.RemoveHook(t);
+ },
+ StartupHook: function (t) {
+ l.Hub.Startup.signal.RemoveHook(t);
+ },
+ LoadHook: function (t) {
+ l.Ajax.removeHook(t);
+ },
+ },
+ setRenderer: function (t, e) {
+ if (t) {
+ if (l.OutputJax[t]) {
+ (this.config.menuSettings.renderer = t),
+ null == e && (e = "jax/mml");
+ var i = this.outputJax;
+ return i[e] && i[e].length && t !== i[e][0].id
+ ? (i[e].unshift(l.OutputJax[t]),
+ this.signal.Post(["Renderer Selected", t]))
+ : null;
+ }
+ this.config.menuSettings.renderer = "";
+ var n = "[MathJax]/jax/output/" + t + "/config.js";
+ return l.Ajax.Require(n, ["setRenderer", this, t, e]);
+ }
+ },
+ Queue: function () {
+ return this.queue.Push.apply(this.queue, arguments);
+ },
+ RestartAfter: function (t) {
+ throw this.Insert(Error("restart"), { restart: l.Callback(t) });
+ },
+ Insert: function (t, e) {
+ for (var i in e)
+ e.hasOwnProperty(i) &&
+ ("object" != typeof e[i] ||
+ e[i] instanceof Array ||
+ ("object" != typeof t[i] && "function" != typeof t[i])
+ ? (t[i] = e[i])
+ : this.Insert(t[i], e[i]));
+ return t;
+ },
+ SplitList:
+ "trim" in String.prototype
+ ? function (t) {
+ return t.trim().split(/\s+/);
+ }
+ : function (t) {
+ return t.replace(/^\s+/, "").replace(/\s+$/, "").split(/\s+/);
+ },
+ }),
+ (l.Extension = {}),
+ (l.Hub.Startup = {
+ queue: l.Callback.Queue(),
+ signal: l.Callback.Signal("Startup"),
+ }),
+ (l.Ajax.config.root = l.Hub.config.root),
+ (i = u.MathJax),
+ (n = "[MathJax]"),
+ (a = i.Hub),
+ (s = i.Ajax),
+ (r = i.Callback),
+ (o = l.Object.Subclass(
+ {
+ JAXFILE: "jax.js",
+ require: null,
+ config: {},
+ Init: function (t, e) {
+ return 0 === arguments.length
+ ? this
+ : this.constructor.Subclass(t, e)();
+ },
+ Augment: function (t, e) {
+ var i = this.constructor,
+ n = {};
+ if (null != t) {
+ for (var s in t)
+ t.hasOwnProperty(s) &&
+ ("function" == typeof t[s]
+ ? i.protoFunction(s, t[s])
+ : (n[s] = t[s]));
+ t.toString !== i.prototype.toString &&
+ t.toString !== {}.toString &&
+ i.protoFunction("toString", t.toString);
+ }
+ return a.Insert(i.prototype, n), i.Augment(null, e), this;
+ },
+ Translate: function (t, e) {
+ throw Error(
+ this.directory +
+ "/" +
+ this.JAXFILE +
+ " failed to define the Translate() method",
+ );
+ },
+ Register: function (t) {},
+ Config: function () {
+ (this.config = a.CombineConfig(this.id, this.config)),
+ this.config.Augment && this.Augment(this.config.Augment);
+ },
+ Startup: function () {},
+ loadComplete: function (t) {
+ if ("config.js" === t)
+ return s.loadComplete(this.directory + "/" + t);
+ var e = r.Queue();
+ return (
+ e.Push(
+ ["Post", a.Startup.signal, this.id + " Jax Config"],
+ ["Config", this],
+ ["Post", a.Startup.signal, this.id + " Jax Startup"],
+ ["Startup", this],
+ ["Post", a.Startup.signal, this.id + " Jax Ready"],
+ ),
+ this.copyTranslate &&
+ e.Push([
+ function (t) {
+ (t.preProcess = t.preTranslate),
+ (t.Process = t.Translate),
+ (t.postProcess = t.postTranslate);
+ },
+ this.constructor.prototype,
+ ]),
+ e.Push(["loadComplete", s, this.directory + "/" + t])
+ );
+ },
+ },
+ {
+ id: "Jax",
+ version: "2.6.0",
+ directory: n + "/jax",
+ extensionDir: n + "/extensions",
+ },
+ )),
+ (i.InputJax = o.Subclass(
+ {
+ elementJax: "mml",
+ sourceMenuTitle: ["Original", "Original Form"],
+ copyTranslate: !0,
+ Process: function (t, e) {
+ throw Error("Input jax failed to load properly");
+ },
+ needsUpdate: function (t) {
+ var e = t.SourceElement();
+ return t.originalText !== i.HTML.getScript(e);
+ },
+ Register: function (t) {
+ a.inputJax || (a.inputJax = {}), (a.inputJax[t] = this);
+ },
+ },
+ {
+ id: "InputJax",
+ version: "2.6.0",
+ directory: o.directory + "/input",
+ extensionDir: o.extensionDir,
+ },
+ )),
+ (i.OutputJax = o.Subclass(
+ {
+ copyTranslate: !0,
+ preProcess: function (t) {
+ throw Error("Output jax failed to load properly");
+ },
+ Register: function (t) {
+ var e = a.outputJax;
+ e[t] || (e[t] = []),
+ e[t].length &&
+ (this.id === a.config.menuSettings.renderer ||
+ (e.order[this.id] || 0) < (e.order[e[t][0].id] || 0))
+ ? e[t].unshift(this)
+ : e[t].push(this);
+ },
+ Remove: function (t) {},
+ },
+ {
+ id: "OutputJax",
+ version: "2.6.0",
+ directory: o.directory + "/output",
+ extensionDir: o.extensionDir,
+ fontDir: n + (i.isPacked ? "" : "/..") + "/fonts",
+ imageDir: n + (i.isPacked ? "" : "/..") + "/images",
+ },
+ )),
+ (i.ElementJax = o.Subclass(
+ {
+ Init: function (t, e) {
+ return this.constructor.Subclass(t, e);
+ },
+ inputJax: null,
+ outputJax: null,
+ inputID: null,
+ originalText: "",
+ mimeType: "",
+ sourceMenuTitle: ["MathMLcode", "MathML Code"],
+ Text: function (t, e) {
+ var n = this.SourceElement();
+ return (
+ i.HTML.setScript(n, t),
+ (n.MathJax.state = this.STATE.UPDATE),
+ a.Update(n, e)
+ );
+ },
+ Reprocess: function (t) {
+ var e = this.SourceElement();
+ return (e.MathJax.state = this.STATE.UPDATE), a.Reprocess(e, t);
+ },
+ Update: function (t) {
+ return this.Rerender(t);
+ },
+ Rerender: function (t) {
+ var e = this.SourceElement();
+ return (e.MathJax.state = this.STATE.OUTPUT), a.Process(e, t);
+ },
+ Remove: function (t) {
+ this.hover && this.hover.clear(this),
+ i.OutputJax[this.outputJax].Remove(this),
+ t ||
+ (a.signal.Post(["Remove Math", this.inputID]), this.Detach());
+ },
+ needsUpdate: function () {
+ return i.InputJax[this.inputJax].needsUpdate(this);
+ },
+ SourceElement: function () {
+ return p.getElementById(this.inputID);
+ },
+ Attach: function (t, e) {
+ var n = t.MathJax.elementJax;
+ return (
+ t.MathJax.state === this.STATE.UPDATE
+ ? n.Clone(this)
+ : ((n = t.MathJax.elementJax = this),
+ t.id
+ ? (this.inputID = t.id)
+ : ((t.id = this.inputID = i.ElementJax.GetID()),
+ (this.newID = 1))),
+ (n.originalText = i.HTML.getScript(t)),
+ (n.inputJax = e),
+ n.root && (n.root.inputID = n.inputID),
+ n
+ );
+ },
+ Detach: function () {
+ var t = this.SourceElement();
+ if (t) {
+ try {
+ delete t.MathJax;
+ } catch (e) {
+ t.MathJax = null;
+ }
+ this.newID && (t.id = "");
+ }
+ },
+ Clone: function (t) {
+ var e;
+ for (e in this)
+ this.hasOwnProperty(e) &&
+ void 0 === t[e] &&
+ "newID" !== e &&
+ delete this[e];
+ for (e in t)
+ t.hasOwnProperty(e) &&
+ (void 0 === this[e] || (this[e] !== t[e] && "inputID" !== e)) &&
+ (this[e] = t[e]);
+ },
+ },
+ {
+ id: "ElementJax",
+ version: "2.6.0",
+ directory: o.directory + "/element",
+ extensionDir: o.extensionDir,
+ ID: 0,
+ STATE: { PENDING: 1, PROCESSED: 2, UPDATE: 3, OUTPUT: 4 },
+ GetID: function () {
+ return this.ID++, "MathJax-Element-" + this.ID;
+ },
+ Subclass: function () {
+ var t = o.Subclass.apply(this, arguments);
+ return (t.loadComplete = this.prototype.loadComplete), t;
+ },
+ },
+ )),
+ (i.ElementJax.prototype.STATE = i.ElementJax.STATE),
+ (l.Hub.Browser = { Select: function () {} });
+ },
+ function (t, e) {
+ (MathJax.ElementJax.mml = MathJax.ElementJax(
+ { mimeType: "jax/mml" },
+ {
+ id: "mml",
+ version: "2.7.2",
+ directory: MathJax.ElementJax.directory + "/mml",
+ extensionDir: MathJax.ElementJax.extensionDir + "/mml",
+ optableDir: MathJax.ElementJax.directory + "/mml/optable",
+ },
+ )),
+ MathJax.ElementJax.mml.Augment(
+ {
+ Init: function () {
+ if (
+ (1 === arguments.length && "math" === arguments[0].type
+ ? (this.root = arguments[0])
+ : (this.root = MathJax.ElementJax.mml.math.apply(
+ this,
+ arguments,
+ )),
+ this.root.attr && this.root.attr.mode)
+ ) {
+ this.root.display ||
+ "display" !== this.root.attr.mode ||
+ ((this.root.display = "block"),
+ this.root.attrNames.push("display")),
+ delete this.root.attr.mode;
+ for (var t = 0, e = this.root.attrNames.length; t < e; t++)
+ if ("mode" === this.root.attrNames[t]) {
+ this.root.attrNames.splice(t, 1);
+ break;
+ }
+ }
+ },
+ },
+ {
+ INHERIT: "_inherit_",
+ AUTO: "_auto_",
+ SIZE: {
+ INFINITY: "infinity",
+ SMALL: "small",
+ NORMAL: "normal",
+ BIG: "big",
+ },
+ COLOR: { TRANSPARENT: "transparent" },
+ VARIANT: {
+ NORMAL: "normal",
+ BOLD: "bold",
+ ITALIC: "italic",
+ BOLDITALIC: "bold-italic",
+ DOUBLESTRUCK: "double-struck",
+ FRAKTUR: "fraktur",
+ BOLDFRAKTUR: "bold-fraktur",
+ SCRIPT: "script",
+ BOLDSCRIPT: "bold-script",
+ SANSSERIF: "sans-serif",
+ BOLDSANSSERIF: "bold-sans-serif",
+ SANSSERIFITALIC: "sans-serif-italic",
+ SANSSERIFBOLDITALIC: "sans-serif-bold-italic",
+ MONOSPACE: "monospace",
+ INITIAL: "inital",
+ TAILED: "tailed",
+ LOOPED: "looped",
+ STRETCHED: "stretched",
+ CALIGRAPHIC: "-tex-caligraphic",
+ OLDSTYLE: "-tex-oldstyle",
+ },
+ FORM: { PREFIX: "prefix", INFIX: "infix", POSTFIX: "postfix" },
+ LINEBREAK: {
+ AUTO: "auto",
+ NEWLINE: "newline",
+ NOBREAK: "nobreak",
+ GOODBREAK: "goodbreak",
+ BADBREAK: "badbreak",
+ },
+ LINEBREAKSTYLE: {
+ BEFORE: "before",
+ AFTER: "after",
+ DUPLICATE: "duplicate",
+ INFIXLINBREAKSTYLE: "infixlinebreakstyle",
+ },
+ INDENTALIGN: {
+ LEFT: "left",
+ CENTER: "center",
+ RIGHT: "right",
+ AUTO: "auto",
+ ID: "id",
+ INDENTALIGN: "indentalign",
+ },
+ INDENTSHIFT: { INDENTSHIFT: "indentshift" },
+ LINETHICKNESS: { THIN: "thin", MEDIUM: "medium", THICK: "thick" },
+ NOTATION: {
+ LONGDIV: "longdiv",
+ ACTUARIAL: "actuarial",
+ RADICAL: "radical",
+ BOX: "box",
+ ROUNDEDBOX: "roundedbox",
+ CIRCLE: "circle",
+ LEFT: "left",
+ RIGHT: "right",
+ TOP: "top",
+ BOTTOM: "bottom",
+ UPDIAGONALSTRIKE: "updiagonalstrike",
+ DOWNDIAGONALSTRIKE: "downdiagonalstrike",
+ UPDIAGONALARROW: "updiagonalarrow",
+ VERTICALSTRIKE: "verticalstrike",
+ HORIZONTALSTRIKE: "horizontalstrike",
+ PHASORANGLE: "phasorangle",
+ MADRUWB: "madruwb",
+ },
+ ALIGN: {
+ TOP: "top",
+ BOTTOM: "bottom",
+ CENTER: "center",
+ BASELINE: "baseline",
+ AXIS: "axis",
+ LEFT: "left",
+ RIGHT: "right",
+ },
+ LINES: { NONE: "none", SOLID: "solid", DASHED: "dashed" },
+ SIDE: {
+ LEFT: "left",
+ RIGHT: "right",
+ LEFTOVERLAP: "leftoverlap",
+ RIGHTOVERLAP: "rightoverlap",
+ },
+ WIDTH: { AUTO: "auto", FIT: "fit" },
+ ACTIONTYPE: {
+ TOGGLE: "toggle",
+ STATUSLINE: "statusline",
+ TOOLTIP: "tooltip",
+ INPUT: "input",
+ },
+ LENGTH: {
+ VERYVERYTHINMATHSPACE: "veryverythinmathspace",
+ VERYTHINMATHSPACE: "verythinmathspace",
+ THINMATHSPACE: "thinmathspace",
+ MEDIUMMATHSPACE: "mediummathspace",
+ THICKMATHSPACE: "thickmathspace",
+ VERYTHICKMATHSPACE: "verythickmathspace",
+ VERYVERYTHICKMATHSPACE: "veryverythickmathspace",
+ NEGATIVEVERYVERYTHINMATHSPACE: "negativeveryverythinmathspace",
+ NEGATIVEVERYTHINMATHSPACE: "negativeverythinmathspace",
+ NEGATIVETHINMATHSPACE: "negativethinmathspace",
+ NEGATIVEMEDIUMMATHSPACE: "negativemediummathspace",
+ NEGATIVETHICKMATHSPACE: "negativethickmathspace",
+ NEGATIVEVERYTHICKMATHSPACE: "negativeverythickmathspace",
+ NEGATIVEVERYVERYTHICKMATHSPACE: "negativeveryverythickmathspace",
+ },
+ OVERFLOW: {
+ LINBREAK: "linebreak",
+ SCROLL: "scroll",
+ ELIDE: "elide",
+ TRUNCATE: "truncate",
+ SCALE: "scale",
+ },
+ UNIT: {
+ EM: "em",
+ EX: "ex",
+ PX: "px",
+ IN: "in",
+ CM: "cm",
+ MM: "mm",
+ PT: "pt",
+ PC: "pc",
+ },
+ TEXCLASS: {
+ ORD: 0,
+ OP: 1,
+ BIN: 2,
+ REL: 3,
+ OPEN: 4,
+ CLOSE: 5,
+ PUNCT: 6,
+ INNER: 7,
+ VCENTER: 8,
+ NONE: -1,
+ },
+ TEXCLASSNAMES: [
+ "ORD",
+ "OP",
+ "BIN",
+ "REL",
+ "OPEN",
+ "CLOSE",
+ "PUNCT",
+ "INNER",
+ "VCENTER",
+ ],
+ skipAttributes: { texClass: !0, useHeight: !0, texprimestyle: !0 },
+ copyAttributes: {
+ displaystyle: 1,
+ scriptlevel: 1,
+ open: 1,
+ close: 1,
+ form: 1,
+ actiontype: 1,
+ fontfamily: !0,
+ fontsize: !0,
+ fontweight: !0,
+ fontstyle: !0,
+ color: !0,
+ background: !0,
+ id: !0,
+ class: 1,
+ href: !0,
+ style: !0,
+ },
+ copyAttributeNames: [
+ "displaystyle",
+ "scriptlevel",
+ "open",
+ "close",
+ "form",
+ "actiontype",
+ "fontfamily",
+ "fontsize",
+ "fontweight",
+ "fontstyle",
+ "color",
+ "background",
+ "id",
+ "class",
+ "href",
+ "style",
+ ],
+ nocopyAttributes: {
+ fontfamily: !0,
+ fontsize: !0,
+ fontweight: !0,
+ fontstyle: !0,
+ color: !0,
+ background: !0,
+ id: !0,
+ class: !0,
+ href: !0,
+ style: !0,
+ xmlns: !0,
+ },
+ Error: function (t, e) {
+ var i = this.merror(t),
+ n = MathJax.Localization.fontDirection(),
+ a = MathJax.Localization.fontFamily();
+ return (
+ e && (i = i.With(e)),
+ (n || a) &&
+ ((i = this.mstyle(i)),
+ n && (i.dir = n),
+ a && (i.style.fontFamily = "font-family: " + a)),
+ i
+ );
+ },
+ },
+ ),
+ (function (t) {
+ (t.mbase = MathJax.Object.Subclass(
+ {
+ type: "base",
+ isToken: !1,
+ defaults: {
+ mathbackground: t.INHERIT,
+ mathcolor: t.INHERIT,
+ dir: t.INHERIT,
+ },
+ noInherit: {},
+ noInheritAttribute: { texClass: !0 },
+ getRemoved: {},
+ linebreakContainer: !1,
+ Init: function () {
+ (this.data = []),
+ !this.inferRow ||
+ (1 === arguments.length && arguments[0].inferred) ||
+ this.Append(t.mrow().With({ inferred: !0, notParent: !0 })),
+ this.Append.apply(this, arguments);
+ },
+ With: function (t) {
+ for (var e in t) t.hasOwnProperty(e) && (this[e] = t[e]);
+ return this;
+ },
+ Append: function () {
+ if (this.inferRow && this.data.length)
+ this.data[0].Append.apply(this.data[0], arguments);
+ else
+ for (var t = 0, e = arguments.length; t < e; t++)
+ this.SetData(this.data.length, arguments[t]);
+ },
+ SetData: function (e, i) {
+ null != i &&
+ (i instanceof t.mbase ||
+ (i = this.isToken || this.isChars ? t.chars(i) : t.mtext(i)),
+ (i.parent = this),
+ i.setInherit(this.inheritFromMe ? this : this.inherit)),
+ (this.data[e] = i);
+ },
+ Parent: function () {
+ for (var t = this.parent; t && t.notParent; ) t = t.parent;
+ return t;
+ },
+ Get: function (e, i, n) {
+ if (!n) {
+ if (null != this[e]) return this[e];
+ if (this.attr && null != this.attr[e]) return this.attr[e];
+ }
+ var a = this.Parent();
+ if (a && null != a["adjustChild_" + e])
+ return a["adjustChild_" + e](this.childPosition(), i);
+ for (var s = this.inherit, r = s; s; ) {
+ var o = s[e];
+ if (
+ (null == o && s.attr && (o = s.attr[e]),
+ s.removedStyles &&
+ s.getRemoved[e] &&
+ null == o &&
+ (o = s.removedStyles[s.getRemoved[e]]),
+ null != o && s.noInheritAttribute && !s.noInheritAttribute[e])
+ ) {
+ var l = s.noInherit[this.type];
+ if (!l || !l[e]) return o;
+ }
+ (r = s), (s = s.inherit);
+ }
+ if (!i) {
+ if (this.defaults[e] === t.AUTO) return this.autoDefault(e);
+ if (this.defaults[e] !== t.INHERIT && null != this.defaults[e])
+ return this.defaults[e];
+ if (r) return r.defaults[e];
+ }
+ return null;
+ },
+ hasValue: function (t) {
+ return null != this.Get(t, !0);
+ },
+ getValues: function () {
+ for (var t = {}, e = 0, i = arguments.length; e < i; e++)
+ t[arguments[e]] = this.Get(arguments[e]);
+ return t;
+ },
+ adjustChild_scriptlevel: function (t, e) {
+ return this.Get("scriptlevel", e);
+ },
+ adjustChild_displaystyle: function (t, e) {
+ return this.Get("displaystyle", e);
+ },
+ adjustChild_texprimestyle: function (t, e) {
+ return this.Get("texprimestyle", e);
+ },
+ childPosition: function () {
+ for (var t = this, e = t.parent; e.notParent; )
+ e = (t = e).parent;
+ for (var i = 0, n = e.data.length; i < n; i++)
+ if (e.data[i] === t) return i;
+ return null;
+ },
+ setInherit: function (t) {
+ if (t !== this.inherit && null == this.inherit) {
+ this.inherit = t;
+ for (var e = 0, i = this.data.length; e < i; e++)
+ this.data[e] &&
+ this.data[e].setInherit &&
+ this.data[e].setInherit(t);
+ }
+ },
+ setTeXclass: function (t) {
+ return this.getPrevClass(t), void 0 !== this.texClass ? this : t;
+ },
+ getPrevClass: function (t) {
+ t &&
+ ((this.prevClass = t.Get("texClass")),
+ (this.prevLevel = t.Get("scriptlevel")));
+ },
+ updateTeXclass: function (t) {
+ t &&
+ ((this.prevClass = t.prevClass),
+ delete t.prevClass,
+ (this.prevLevel = t.prevLevel),
+ delete t.prevLevel,
+ (this.texClass = t.Get("texClass")));
+ },
+ texSpacing: function () {
+ var e = null != this.prevClass ? this.prevClass : t.TEXCLASS.NONE,
+ i = this.Get("texClass") || t.TEXCLASS.ORD;
+ if (e === t.TEXCLASS.NONE || i === t.TEXCLASS.NONE) return "";
+ e === t.TEXCLASS.VCENTER && (e = t.TEXCLASS.ORD),
+ i === t.TEXCLASS.VCENTER && (i = t.TEXCLASS.ORD);
+ var n = this.TEXSPACE[e][i];
+ return (this.prevLevel > 0 || this.Get("scriptlevel") > 0) &&
+ n >= 0
+ ? ""
+ : this.TEXSPACELENGTH[Math.abs(n)];
+ },
+ TEXSPACELENGTH: [
+ "",
+ t.LENGTH.THINMATHSPACE,
+ t.LENGTH.MEDIUMMATHSPACE,
+ t.LENGTH.THICKMATHSPACE,
+ ],
+ TEXSPACE: [
+ [0, -1, 2, 3, 0, 0, 0, 1],
+ [-1, -1, 0, 3, 0, 0, 0, 1],
+ [2, 2, 0, 0, 2, 0, 0, 2],
+ [3, 3, 0, 0, 3, 0, 0, 3],
+ [0, 0, 0, 0, 0, 0, 0, 0],
+ [0, -1, 2, 3, 0, 0, 0, 1],
+ [1, 1, 0, 1, 1, 1, 1, 1],
+ [1, -1, 2, 3, 1, 0, 1, 1],
+ ],
+ autoDefault: function (t) {
+ return "";
+ },
+ isSpacelike: function () {
+ return !1;
+ },
+ isEmbellished: function () {
+ return !1;
+ },
+ Core: function () {
+ return this;
+ },
+ CoreMO: function () {
+ return this;
+ },
+ childIndex: function (t) {
+ if (null != t)
+ for (var e = 0, i = this.data.length; e < i; e++)
+ if (t === this.data[e]) return e;
+ },
+ CoreIndex: function () {
+ return ((this.inferRow && this.data[0]) || this).childIndex(
+ this.Core(),
+ );
+ },
+ hasNewline: function () {
+ if (this.isEmbellished()) return this.CoreMO().hasNewline();
+ if (this.isToken || this.linebreakContainer) return !1;
+ for (var t = 0, e = this.data.length; t < e; t++)
+ if (this.data[t] && this.data[t].hasNewline()) return !0;
+ return !1;
+ },
+ array: function () {
+ return this.inferred ? this.data : [this];
+ },
+ toString: function () {
+ return this.type + "(" + this.data.join(",") + ")";
+ },
+ getAnnotation: function () {
+ return null;
+ },
+ },
+ {
+ childrenSpacelike: function () {
+ for (var t = 0, e = this.data.length; t < e; t++)
+ if (!this.data[t].isSpacelike()) return !1;
+ return !0;
+ },
+ childEmbellished: function () {
+ return this.data[0] && this.data[0].isEmbellished();
+ },
+ childCore: function () {
+ return this.inferRow && this.data[0]
+ ? this.data[0].Core()
+ : this.data[0];
+ },
+ childCoreMO: function () {
+ return this.data[0] ? this.data[0].CoreMO() : null;
+ },
+ setChildTeXclass: function (t) {
+ return (
+ this.data[0] &&
+ ((t = this.data[0].setTeXclass(t)),
+ this.updateTeXclass(this.data[0])),
+ t
+ );
+ },
+ setBaseTeXclasses: function (e) {
+ this.getPrevClass(e),
+ (this.texClass = null),
+ this.data[0]
+ ? this.isEmbellished() || this.data[0].isa(t.mi)
+ ? ((e = this.data[0].setTeXclass(e)),
+ this.updateTeXclass(this.Core()))
+ : (this.data[0].setTeXclass(), (e = this))
+ : (e = this);
+ for (var i = 1, n = this.data.length; i < n; i++)
+ this.data[i] && this.data[i].setTeXclass();
+ return e;
+ },
+ setSeparateTeXclasses: function (t) {
+ this.getPrevClass(t);
+ for (var e = 0, i = this.data.length; e < i; e++)
+ this.data[e] && this.data[e].setTeXclass();
+ return (
+ this.isEmbellished() && this.updateTeXclass(this.Core()), this
+ );
+ },
+ },
+ )),
+ (t.mi = t.mbase.Subclass({
+ type: "mi",
+ isToken: !0,
+ texClass: t.TEXCLASS.ORD,
+ defaults: {
+ mathvariant: t.AUTO,
+ mathsize: t.INHERIT,
+ mathbackground: t.INHERIT,
+ mathcolor: t.INHERIT,
+ dir: t.INHERIT,
+ },
+ autoDefault: function (e) {
+ if ("mathvariant" === e) {
+ var i = (this.data[0] || "").toString();
+ return 1 === i.length ||
+ (2 === i.length &&
+ i.charCodeAt(0) >= 55296 &&
+ i.charCodeAt(0) < 56320)
+ ? t.VARIANT.ITALIC
+ : t.VARIANT.NORMAL;
+ }
+ return "";
+ },
+ setTeXclass: function (e) {
+ this.getPrevClass(e);
+ var i = this.data.join("");
+ return (
+ i.length > 1 &&
+ i.match(/^[a-z][a-z0-9]*$/i) &&
+ this.texClass === t.TEXCLASS.ORD &&
+ ((this.texClass = t.TEXCLASS.OP), (this.autoOP = !0)),
+ this
+ );
+ },
+ })),
+ (t.mn = t.mbase.Subclass({
+ type: "mn",
+ isToken: !0,
+ texClass: t.TEXCLASS.ORD,
+ defaults: {
+ mathvariant: t.INHERIT,
+ mathsize: t.INHERIT,
+ mathbackground: t.INHERIT,
+ mathcolor: t.INHERIT,
+ dir: t.INHERIT,
+ },
+ })),
+ (t.mo = t.mbase.Subclass({
+ type: "mo",
+ isToken: !0,
+ defaults: {
+ mathvariant: t.INHERIT,
+ mathsize: t.INHERIT,
+ mathbackground: t.INHERIT,
+ mathcolor: t.INHERIT,
+ dir: t.INHERIT,
+ form: t.AUTO,
+ fence: t.AUTO,
+ separator: t.AUTO,
+ lspace: t.AUTO,
+ rspace: t.AUTO,
+ stretchy: t.AUTO,
+ symmetric: t.AUTO,
+ maxsize: t.AUTO,
+ minsize: t.AUTO,
+ largeop: t.AUTO,
+ movablelimits: t.AUTO,
+ accent: t.AUTO,
+ linebreak: t.LINEBREAK.AUTO,
+ lineleading: t.INHERIT,
+ linebreakstyle: t.AUTO,
+ linebreakmultchar: t.INHERIT,
+ indentalign: t.INHERIT,
+ indentshift: t.INHERIT,
+ indenttarget: t.INHERIT,
+ indentalignfirst: t.INHERIT,
+ indentshiftfirst: t.INHERIT,
+ indentalignlast: t.INHERIT,
+ indentshiftlast: t.INHERIT,
+ texClass: t.AUTO,
+ },
+ defaultDef: {
+ form: t.FORM.INFIX,
+ fence: !1,
+ separator: !1,
+ lspace: t.LENGTH.THICKMATHSPACE,
+ rspace: t.LENGTH.THICKMATHSPACE,
+ stretchy: !1,
+ symmetric: !1,
+ maxsize: t.SIZE.INFINITY,
+ minsize: "0em",
+ largeop: !1,
+ movablelimits: !1,
+ accent: !1,
+ linebreak: t.LINEBREAK.AUTO,
+ lineleading: "1ex",
+ linebreakstyle: "before",
+ indentalign: t.INDENTALIGN.AUTO,
+ indentshift: "0",
+ indenttarget: "",
+ indentalignfirst: t.INDENTALIGN.INDENTALIGN,
+ indentshiftfirst: t.INDENTSHIFT.INDENTSHIFT,
+ indentalignlast: t.INDENTALIGN.INDENTALIGN,
+ indentshiftlast: t.INDENTSHIFT.INDENTSHIFT,
+ texClass: t.TEXCLASS.REL,
+ },
+ SPACE_ATTR: { lspace: 1, rspace: 2, form: 4 },
+ useMMLspacing: 7,
+ autoDefault: function (e, i) {
+ var n = this.def;
+ if (!n) {
+ if ("form" === e)
+ return (
+ (this.useMMLspacing &= ~this.SPACE_ATTR.form),
+ this.getForm()
+ );
+ for (
+ var a = this.data.join(""),
+ s = [
+ this.Get("form"),
+ t.FORM.INFIX,
+ t.FORM.POSTFIX,
+ t.FORM.PREFIX,
+ ],
+ r = 0,
+ o = s.length;
+ r < o;
+ r++
+ ) {
+ var l = this.OPTABLE[s[r]][a];
+ if (l) {
+ n = this.makeDef(l);
+ break;
+ }
+ }
+ n || (n = this.CheckRange(a)),
+ !n && i
+ ? (n = {})
+ : (n || (n = MathJax.Hub.Insert({}, this.defaultDef)),
+ this.parent
+ ? (this.def = n)
+ : (n = MathJax.Hub.Insert({}, n)),
+ (n.form = s[0]));
+ }
+ return (
+ (this.useMMLspacing &= ~(this.SPACE_ATTR[e] || 0)),
+ null != n[e] ? n[e] : i ? "" : this.defaultDef[e]
+ );
+ },
+ CheckRange: function (e) {
+ var i = e.charCodeAt(0);
+ i >= 55296 &&
+ i < 56320 &&
+ (i = ((i - 55296) << 10) + (e.charCodeAt(1) - 56320) + 65536);
+ for (
+ var n = 0, a = this.RANGES.length;
+ n < a && this.RANGES[n][0] <= i;
+ n++
+ )
+ if (i <= this.RANGES[n][1]) {
+ if (this.RANGES[n][3]) {
+ var s = t.optableDir + "/" + this.RANGES[n][3] + ".js";
+ (this.RANGES[n][3] = null),
+ MathJax.Hub.RestartAfter(MathJax.Ajax.Require(s));
+ }
+ var r = t.TEXCLASSNAMES[this.RANGES[n][2]];
+ return (
+ (r = this.OPTABLE.infix[e] =
+ t.mo.OPTYPES["BIN" === r ? "BIN3" : r]),
+ this.makeDef(r)
+ );
+ }
+ return null;
+ },
+ makeDef: function (e) {
+ null == e[2] && (e[2] = this.defaultDef.texClass),
+ e[3] || (e[3] = {});
+ var i = MathJax.Hub.Insert({}, e[3]);
+ return (
+ (i.lspace = this.SPACE[e[0]]),
+ (i.rspace = this.SPACE[e[1]]),
+ (i.texClass = e[2]),
+ i.texClass === t.TEXCLASS.REL &&
+ (this.movablelimits ||
+ this.data.join("").match(/^[a-z]+$/i)) &&
+ (i.texClass = t.TEXCLASS.OP),
+ i
+ );
+ },
+ getForm: function () {
+ for (
+ var e = this, i = this.parent, n = this.Parent();
+ n && n.isEmbellished();
+ )
+ (e = i), (i = n.parent), (n = n.Parent());
+ if (i && "mrow" === i.type && 1 !== i.NonSpaceLength()) {
+ if (i.FirstNonSpace() === e) return t.FORM.PREFIX;
+ if (i.LastNonSpace() === e) return t.FORM.POSTFIX;
+ }
+ return t.FORM.INFIX;
+ },
+ isEmbellished: function () {
+ return !0;
+ },
+ hasNewline: function () {
+ return this.Get("linebreak") === t.LINEBREAK.NEWLINE;
+ },
+ CoreParent: function () {
+ for (
+ var e = this;
+ e && e.isEmbellished() && e.CoreMO() === this && !e.isa(t.math);
+ )
+ e = e.Parent();
+ return e;
+ },
+ CoreText: function (e) {
+ if (!e) return "";
+ if (e.isEmbellished()) return e.CoreMO().data.join("");
+ for (
+ ;
+ (((e.isa(t.mrow) ||
+ e.isa(t.TeXAtom) ||
+ e.isa(t.mstyle) ||
+ e.isa(t.mphantom)) &&
+ 1 === e.data.length) ||
+ e.isa(t.munderover)) &&
+ e.data[0];
+ )
+ e = e.data[0];
+ return e.isToken ? e.data.join("") : "";
+ },
+ remapChars: {
+ "*": "\u2217",
+ '"': "\u2033",
+ "\xb0": "\u2218",
+ "\xb2": "2",
+ "\xb3": "3",
+ "\xb4": "\u2032",
+ "\xb9": "1",
+ },
+ remap: function (t, e) {
+ return (
+ (t = t.replace(/-/g, "\u2212")),
+ e &&
+ 1 ===
+ (t = t.replace(/'/g, "\u2032").replace(/`/g, "\u2035"))
+ .length &&
+ (t = e[t] || t),
+ t
+ );
+ },
+ setTeXclass: function (e) {
+ var i = this.getValues("form", "lspace", "rspace", "fence");
+ return this.useMMLspacing
+ ? ((this.texClass = t.TEXCLASS.NONE), this)
+ : (i.fence &&
+ !this.texClass &&
+ (i.form === t.FORM.PREFIX &&
+ (this.texClass = t.TEXCLASS.OPEN),
+ i.form === t.FORM.POSTFIX &&
+ (this.texClass = t.TEXCLASS.CLOSE)),
+ (this.texClass = this.Get("texClass")),
+ "\u2061" === this.data.join("")
+ ? (e && ((e.texClass = t.TEXCLASS.OP), (e.fnOP = !0)),
+ (this.texClass = this.prevClass = t.TEXCLASS.NONE),
+ e)
+ : this.adjustTeXclass(e));
+ },
+ adjustTeXclass: function (e) {
+ if (this.texClass === t.TEXCLASS.NONE) return e;
+ if (
+ (e
+ ? (!e.autoOP ||
+ (this.texClass !== t.TEXCLASS.BIN &&
+ this.texClass !== t.TEXCLASS.REL) ||
+ (e.texClass = t.TEXCLASS.ORD),
+ (this.prevClass = e.texClass || t.TEXCLASS.ORD),
+ (this.prevLevel = e.Get("scriptlevel")))
+ : (this.prevClass = t.TEXCLASS.NONE),
+ this.texClass !== t.TEXCLASS.BIN ||
+ (this.prevClass !== t.TEXCLASS.NONE &&
+ this.prevClass !== t.TEXCLASS.BIN &&
+ this.prevClass !== t.TEXCLASS.OP &&
+ this.prevClass !== t.TEXCLASS.REL &&
+ this.prevClass !== t.TEXCLASS.OPEN &&
+ this.prevClass !== t.TEXCLASS.PUNCT))
+ )
+ if (
+ this.prevClass !== t.TEXCLASS.BIN ||
+ (this.texClass !== t.TEXCLASS.REL &&
+ this.texClass !== t.TEXCLASS.CLOSE &&
+ this.texClass !== t.TEXCLASS.PUNCT)
+ ) {
+ if (this.texClass === t.TEXCLASS.BIN) {
+ for (
+ var i = this, n = this.parent;
+ n &&
+ n.parent &&
+ n.isEmbellished() &&
+ (1 === n.data.length ||
+ ("mrow" !== n.type && n.Core() === i));
+ )
+ (i = n), (n = n.parent);
+ n.data[n.data.length - 1] === i &&
+ (this.texClass = t.TEXCLASS.ORD);
+ }
+ } else e.texClass = this.prevClass = t.TEXCLASS.ORD;
+ else this.texClass = t.TEXCLASS.ORD;
+ return this;
+ },
+ })),
+ (t.mtext = t.mbase.Subclass({
+ type: "mtext",
+ isToken: !0,
+ isSpacelike: function () {
+ return !0;
+ },
+ texClass: t.TEXCLASS.ORD,
+ defaults: {
+ mathvariant: t.INHERIT,
+ mathsize: t.INHERIT,
+ mathbackground: t.INHERIT,
+ mathcolor: t.INHERIT,
+ dir: t.INHERIT,
+ },
+ })),
+ (t.mspace = t.mbase.Subclass({
+ type: "mspace",
+ isToken: !0,
+ isSpacelike: function () {
+ return !0;
+ },
+ defaults: {
+ mathbackground: t.INHERIT,
+ mathcolor: t.INHERIT,
+ width: "0em",
+ height: "0ex",
+ depth: "0ex",
+ linebreak: t.LINEBREAK.AUTO,
+ },
+ hasDimAttr: function () {
+ return (
+ this.hasValue("width") ||
+ this.hasValue("height") ||
+ this.hasValue("depth")
+ );
+ },
+ hasNewline: function () {
+ return (
+ !this.hasDimAttr() &&
+ this.Get("linebreak") === t.LINEBREAK.NEWLINE
+ );
+ },
+ })),
+ (t.ms = t.mbase.Subclass({
+ type: "ms",
+ isToken: !0,
+ texClass: t.TEXCLASS.ORD,
+ defaults: {
+ mathvariant: t.INHERIT,
+ mathsize: t.INHERIT,
+ mathbackground: t.INHERIT,
+ mathcolor: t.INHERIT,
+ dir: t.INHERIT,
+ lquote: '"',
+ rquote: '"',
+ },
+ })),
+ (t.mglyph = t.mbase.Subclass({
+ type: "mglyph",
+ isToken: !0,
+ texClass: t.TEXCLASS.ORD,
+ defaults: {
+ mathbackground: t.INHERIT,
+ mathcolor: t.INHERIT,
+ alt: "",
+ src: "",
+ width: t.AUTO,
+ height: t.AUTO,
+ valign: "0em",
+ },
+ })),
+ (t.mrow = t.mbase.Subclass({
+ type: "mrow",
+ isSpacelike: t.mbase.childrenSpacelike,
+ inferred: !1,
+ notParent: !1,
+ isEmbellished: function () {
+ for (var t = !1, e = 0, i = this.data.length; e < i; e++)
+ if (null != this.data[e])
+ if (this.data[e].isEmbellished()) {
+ if (t) return !1;
+ (t = !0), (this.core = e);
+ } else if (!this.data[e].isSpacelike()) return !1;
+ return t;
+ },
+ NonSpaceLength: function () {
+ for (var t = 0, e = 0, i = this.data.length; e < i; e++)
+ this.data[e] && !this.data[e].isSpacelike() && t++;
+ return t;
+ },
+ FirstNonSpace: function () {
+ for (var t = 0, e = this.data.length; t < e; t++)
+ if (this.data[t] && !this.data[t].isSpacelike())
+ return this.data[t];
+ return null;
+ },
+ LastNonSpace: function () {
+ for (var t = this.data.length - 1; t >= 0; t--)
+ if (this.data[0] && !this.data[t].isSpacelike())
+ return this.data[t];
+ return null;
+ },
+ Core: function () {
+ return this.isEmbellished() && void 0 !== this.core
+ ? this.data[this.core]
+ : this;
+ },
+ CoreMO: function () {
+ return this.isEmbellished() && void 0 !== this.core
+ ? this.data[this.core].CoreMO()
+ : this;
+ },
+ toString: function () {
+ return this.inferred
+ ? "[" + this.data.join(",") + "]"
+ : this.SUPER(arguments).toString.call(this);
+ },
+ setTeXclass: function (e) {
+ var i,
+ n = this.data.length;
+ if ((!this.open && !this.close) || (e && e.fnOP)) {
+ for (i = 0; i < n; i++)
+ this.data[i] && (e = this.data[i].setTeXclass(e));
+ return this.data[0] && this.updateTeXclass(this.data[0]), e;
+ }
+ for (this.getPrevClass(e), e = null, i = 0; i < n; i++)
+ this.data[i] && (e = this.data[i].setTeXclass(e));
+ return (
+ this.hasOwnProperty("texClass") ||
+ (this.texClass = t.TEXCLASS.INNER),
+ this
+ );
+ },
+ getAnnotation: function (t) {
+ return 1 != this.data.length
+ ? null
+ : this.data[0].getAnnotation(t);
+ },
+ })),
+ (t.mfrac = t.mbase.Subclass({
+ type: "mfrac",
+ num: 0,
+ den: 1,
+ linebreakContainer: !0,
+ isEmbellished: t.mbase.childEmbellished,
+ Core: t.mbase.childCore,
+ CoreMO: t.mbase.childCoreMO,
+ defaults: {
+ mathbackground: t.INHERIT,
+ mathcolor: t.INHERIT,
+ linethickness: t.LINETHICKNESS.MEDIUM,
+ numalign: t.ALIGN.CENTER,
+ denomalign: t.ALIGN.CENTER,
+ bevelled: !1,
+ },
+ adjustChild_displaystyle: function (t) {
+ return !1;
+ },
+ adjustChild_scriptlevel: function (t) {
+ var e = this.Get("scriptlevel");
+ return (!this.Get("displaystyle") || e > 0) && e++, e;
+ },
+ adjustChild_texprimestyle: function (t) {
+ return t == this.den || this.Get("texprimestyle");
+ },
+ setTeXclass: t.mbase.setSeparateTeXclasses,
+ })),
+ (t.msqrt = t.mbase.Subclass({
+ type: "msqrt",
+ inferRow: !0,
+ linebreakContainer: !0,
+ texClass: t.TEXCLASS.ORD,
+ setTeXclass: t.mbase.setSeparateTeXclasses,
+ adjustChild_texprimestyle: function (t) {
+ return !0;
+ },
+ })),
+ (t.mroot = t.mbase.Subclass({
+ type: "mroot",
+ linebreakContainer: !0,
+ texClass: t.TEXCLASS.ORD,
+ adjustChild_displaystyle: function (t) {
+ return 1 !== t && this.Get("displaystyle");
+ },
+ adjustChild_scriptlevel: function (t) {
+ var e = this.Get("scriptlevel");
+ return 1 === t && (e += 2), e;
+ },
+ adjustChild_texprimestyle: function (t) {
+ return 0 === t || this.Get("texprimestyle");
+ },
+ setTeXclass: t.mbase.setSeparateTeXclasses,
+ })),
+ (t.mstyle = t.mbase.Subclass({
+ type: "mstyle",
+ isSpacelike: t.mbase.childrenSpacelike,
+ isEmbellished: t.mbase.childEmbellished,
+ Core: t.mbase.childCore,
+ CoreMO: t.mbase.childCoreMO,
+ inferRow: !0,
+ defaults: {
+ scriptlevel: t.INHERIT,
+ displaystyle: t.INHERIT,
+ scriptsizemultiplier: Math.sqrt(0.5),
+ scriptminsize: "8pt",
+ mathbackground: t.INHERIT,
+ mathcolor: t.INHERIT,
+ dir: t.INHERIT,
+ infixlinebreakstyle: t.LINEBREAKSTYLE.BEFORE,
+ decimalseparator: ".",
+ },
+ adjustChild_scriptlevel: function (t) {
+ var e = this.scriptlevel;
+ if (null == e) e = this.Get("scriptlevel");
+ else if (String(e).match(/^ *[-+]/)) {
+ e = this.Get("scriptlevel", null, !0) + parseInt(e);
+ }
+ return e;
+ },
+ inheritFromMe: !0,
+ noInherit: {
+ mpadded: {
+ width: !0,
+ height: !0,
+ depth: !0,
+ lspace: !0,
+ voffset: !0,
+ },
+ mtable: { width: !0, height: !0, depth: !0, align: !0 },
+ },
+ getRemoved: {
+ fontfamily: "fontFamily",
+ fontweight: "fontWeight",
+ fontstyle: "fontStyle",
+ fontsize: "fontSize",
+ },
+ setTeXclass: t.mbase.setChildTeXclass,
+ })),
+ (t.merror = t.mbase.Subclass({
+ type: "merror",
+ inferRow: !0,
+ linebreakContainer: !0,
+ texClass: t.TEXCLASS.ORD,
+ })),
+ (t.mpadded = t.mbase.Subclass({
+ type: "mpadded",
+ inferRow: !0,
+ isSpacelike: t.mbase.childrenSpacelike,
+ isEmbellished: t.mbase.childEmbellished,
+ Core: t.mbase.childCore,
+ CoreMO: t.mbase.childCoreMO,
+ defaults: {
+ mathbackground: t.INHERIT,
+ mathcolor: t.INHERIT,
+ width: "",
+ height: "",
+ depth: "",
+ lspace: 0,
+ voffset: 0,
+ },
+ setTeXclass: t.mbase.setChildTeXclass,
+ })),
+ (t.mphantom = t.mbase.Subclass({
+ type: "mphantom",
+ texClass: t.TEXCLASS.ORD,
+ inferRow: !0,
+ isSpacelike: t.mbase.childrenSpacelike,
+ isEmbellished: t.mbase.childEmbellished,
+ Core: t.mbase.childCore,
+ CoreMO: t.mbase.childCoreMO,
+ setTeXclass: t.mbase.setChildTeXclass,
+ })),
+ (t.mfenced = t.mbase.Subclass({
+ type: "mfenced",
+ defaults: {
+ mathbackground: t.INHERIT,
+ mathcolor: t.INHERIT,
+ open: "(",
+ close: ")",
+ separators: ",",
+ },
+ addFakeNodes: function () {
+ var e = this.getValues("open", "close", "separators");
+ if (
+ ((e.open = e.open.replace(/[ \t\n\r]/g, "")),
+ (e.close = e.close.replace(/[ \t\n\r]/g, "")),
+ (e.separators = e.separators.replace(/[ \t\n\r]/g, "")),
+ "" !== e.open &&
+ (this.SetData(
+ "open",
+ t.mo(e.open).With({
+ fence: !0,
+ form: t.FORM.PREFIX,
+ texClass: t.TEXCLASS.OPEN,
+ }),
+ ),
+ (this.data.open.useMMLspacing = 0)),
+ "" !== e.separators)
+ ) {
+ for (; e.separators.length < this.data.length; )
+ e.separators += e.separators.charAt(e.separators.length - 1);
+ for (var i = 1, n = this.data.length; i < n; i++)
+ this.data[i] &&
+ (this.SetData(
+ "sep" + i,
+ t.mo(e.separators.charAt(i - 1)).With({ separator: !0 }),
+ ),
+ (this.data["sep" + i].useMMLspacing = 0));
+ }
+ "" !== e.close &&
+ (this.SetData(
+ "close",
+ t.mo(e.close).With({
+ fence: !0,
+ form: t.FORM.POSTFIX,
+ texClass: t.TEXCLASS.CLOSE,
+ }),
+ ),
+ (this.data.close.useMMLspacing = 0));
+ },
+ texClass: t.TEXCLASS.OPEN,
+ setTeXclass: function (e) {
+ this.addFakeNodes(),
+ this.getPrevClass(e),
+ this.data.open && (e = this.data.open.setTeXclass(e)),
+ this.data[0] && (e = this.data[0].setTeXclass(e));
+ for (var i = 1, n = this.data.length; i < n; i++)
+ this.data["sep" + i] &&
+ (e = this.data["sep" + i].setTeXclass(e)),
+ this.data[i] && (e = this.data[i].setTeXclass(e));
+ return (
+ this.data.close && (e = this.data.close.setTeXclass(e)),
+ this.updateTeXclass(this.data.open),
+ (this.texClass = t.TEXCLASS.INNER),
+ e
+ );
+ },
+ })),
+ (t.menclose = t.mbase.Subclass({
+ type: "menclose",
+ inferRow: !0,
+ linebreakContainer: !0,
+ defaults: {
+ mathbackground: t.INHERIT,
+ mathcolor: t.INHERIT,
+ notation: t.NOTATION.LONGDIV,
+ texClass: t.TEXCLASS.ORD,
+ },
+ setTeXclass: t.mbase.setSeparateTeXclasses,
+ })),
+ (t.msubsup = t.mbase.Subclass({
+ type: "msubsup",
+ base: 0,
+ sub: 1,
+ sup: 2,
+ isEmbellished: t.mbase.childEmbellished,
+ Core: t.mbase.childCore,
+ CoreMO: t.mbase.childCoreMO,
+ defaults: {
+ mathbackground: t.INHERIT,
+ mathcolor: t.INHERIT,
+ subscriptshift: "",
+ superscriptshift: "",
+ texClass: t.AUTO,
+ },
+ autoDefault: function (e) {
+ return "texClass" === e
+ ? this.isEmbellished()
+ ? this.CoreMO().Get(e)
+ : t.TEXCLASS.ORD
+ : 0;
+ },
+ adjustChild_displaystyle: function (t) {
+ return !(t > 0) && this.Get("displaystyle");
+ },
+ adjustChild_scriptlevel: function (t) {
+ var e = this.Get("scriptlevel");
+ return t > 0 && e++, e;
+ },
+ adjustChild_texprimestyle: function (t) {
+ return t === this.sub || this.Get("texprimestyle");
+ },
+ setTeXclass: t.mbase.setBaseTeXclasses,
+ })),
+ (t.msub = t.msubsup.Subclass({ type: "msub" })),
+ (t.msup = t.msubsup.Subclass({ type: "msup", sub: 2, sup: 1 })),
+ (t.mmultiscripts = t.msubsup.Subclass({
+ type: "mmultiscripts",
+ adjustChild_texprimestyle: function (t) {
+ return t % 2 == 1 || this.Get("texprimestyle");
+ },
+ })),
+ (t.mprescripts = t.mbase.Subclass({ type: "mprescripts" })),
+ (t.none = t.mbase.Subclass({ type: "none" })),
+ (t.munderover = t.mbase.Subclass({
+ type: "munderover",
+ base: 0,
+ under: 1,
+ over: 2,
+ sub: 1,
+ sup: 2,
+ ACCENTS: ["", "accentunder", "accent"],
+ linebreakContainer: !0,
+ isEmbellished: t.mbase.childEmbellished,
+ Core: t.mbase.childCore,
+ CoreMO: t.mbase.childCoreMO,
+ defaults: {
+ mathbackground: t.INHERIT,
+ mathcolor: t.INHERIT,
+ accent: t.AUTO,
+ accentunder: t.AUTO,
+ align: t.ALIGN.CENTER,
+ texClass: t.AUTO,
+ subscriptshift: "",
+ superscriptshift: "",
+ },
+ autoDefault: function (e) {
+ return "texClass" === e
+ ? this.isEmbellished()
+ ? this.CoreMO().Get(e)
+ : t.TEXCLASS.ORD
+ : "accent" === e && this.data[this.over]
+ ? this.data[this.over].CoreMO().Get("accent")
+ : !("accentunder" !== e || !this.data[this.under]) &&
+ this.data[this.under].CoreMO().Get("accent");
+ },
+ adjustChild_displaystyle: function (t) {
+ return !(t > 0) && this.Get("displaystyle");
+ },
+ adjustChild_scriptlevel: function (t) {
+ var e = this.Get("scriptlevel"),
+ i =
+ this.data[this.base] &&
+ !this.Get("displaystyle") &&
+ this.data[this.base].CoreMO().Get("movablelimits");
+ return (
+ t != this.under || (!i && this.Get("accentunder")) || e++,
+ t != this.over || (!i && this.Get("accent")) || e++,
+ e
+ );
+ },
+ adjustChild_texprimestyle: function (t) {
+ return (
+ !(t !== this.base || !this.data[this.over]) ||
+ this.Get("texprimestyle")
+ );
+ },
+ setTeXclass: t.mbase.setBaseTeXclasses,
+ })),
+ (t.munder = t.munderover.Subclass({ type: "munder" })),
+ (t.mover = t.munderover.Subclass({
+ type: "mover",
+ over: 1,
+ under: 2,
+ sup: 1,
+ sub: 2,
+ ACCENTS: ["", "accent", "accentunder"],
+ })),
+ (t.mtable = t.mbase.Subclass({
+ type: "mtable",
+ defaults: {
+ mathbackground: t.INHERIT,
+ mathcolor: t.INHERIT,
+ align: t.ALIGN.AXIS,
+ rowalign: t.ALIGN.BASELINE,
+ columnalign: t.ALIGN.CENTER,
+ groupalign: "{left}",
+ alignmentscope: !0,
+ columnwidth: t.WIDTH.AUTO,
+ width: t.WIDTH.AUTO,
+ rowspacing: "1ex",
+ columnspacing: ".8em",
+ rowlines: t.LINES.NONE,
+ columnlines: t.LINES.NONE,
+ frame: t.LINES.NONE,
+ framespacing: "0.4em 0.5ex",
+ equalrows: !1,
+ equalcolumns: !1,
+ displaystyle: !1,
+ side: t.SIDE.RIGHT,
+ minlabelspacing: "0.8em",
+ texClass: t.TEXCLASS.ORD,
+ useHeight: 1,
+ },
+ adjustChild_displaystyle: function () {
+ return null != this.displaystyle
+ ? this.displaystyle
+ : this.defaults.displaystyle;
+ },
+ inheritFromMe: !0,
+ noInherit: {
+ mover: { align: !0 },
+ munder: { align: !0 },
+ munderover: { align: !0 },
+ mtable: {
+ align: !0,
+ rowalign: !0,
+ columnalign: !0,
+ groupalign: !0,
+ alignmentscope: !0,
+ columnwidth: !0,
+ width: !0,
+ rowspacing: !0,
+ columnspacing: !0,
+ rowlines: !0,
+ columnlines: !0,
+ frame: !0,
+ framespacing: !0,
+ equalrows: !0,
+ equalcolumns: !0,
+ displaystyle: !0,
+ side: !0,
+ minlabelspacing: !0,
+ texClass: !0,
+ useHeight: 1,
+ },
+ },
+ linebreakContainer: !0,
+ Append: function () {
+ for (var e = 0, i = arguments.length; e < i; e++)
+ arguments[e] instanceof t.mtr ||
+ arguments[e] instanceof t.mlabeledtr ||
+ (arguments[e] = t.mtr(arguments[e]));
+ this.SUPER(arguments).Append.apply(this, arguments);
+ },
+ setTeXclass: t.mbase.setSeparateTeXclasses,
+ })),
+ (t.mtr = t.mbase.Subclass({
+ type: "mtr",
+ defaults: {
+ mathbackground: t.INHERIT,
+ mathcolor: t.INHERIT,
+ rowalign: t.INHERIT,
+ columnalign: t.INHERIT,
+ groupalign: t.INHERIT,
+ },
+ inheritFromMe: !0,
+ noInherit: {
+ mrow: { rowalign: !0, columnalign: !0, groupalign: !0 },
+ mtable: { rowalign: !0, columnalign: !0, groupalign: !0 },
+ },
+ linebreakContainer: !0,
+ Append: function () {
+ for (var e = 0, i = arguments.length; e < i; e++)
+ arguments[e] instanceof t.mtd ||
+ (arguments[e] = t.mtd(arguments[e]));
+ this.SUPER(arguments).Append.apply(this, arguments);
+ },
+ setTeXclass: t.mbase.setSeparateTeXclasses,
+ })),
+ (t.mtd = t.mbase.Subclass({
+ type: "mtd",
+ inferRow: !0,
+ linebreakContainer: !0,
+ isEmbellished: t.mbase.childEmbellished,
+ Core: t.mbase.childCore,
+ CoreMO: t.mbase.childCoreMO,
+ defaults: {
+ mathbackground: t.INHERIT,
+ mathcolor: t.INHERIT,
+ rowspan: 1,
+ columnspan: 1,
+ rowalign: t.INHERIT,
+ columnalign: t.INHERIT,
+ groupalign: t.INHERIT,
+ },
+ setTeXclass: t.mbase.setSeparateTeXclasses,
+ })),
+ (t.maligngroup = t.mbase.Subclass({
+ type: "maligngroup",
+ isSpacelike: function () {
+ return !0;
+ },
+ defaults: {
+ mathbackground: t.INHERIT,
+ mathcolor: t.INHERIT,
+ groupalign: t.INHERIT,
+ },
+ inheritFromMe: !0,
+ noInherit: { mrow: { groupalign: !0 }, mtable: { groupalign: !0 } },
+ })),
+ (t.malignmark = t.mbase.Subclass({
+ type: "malignmark",
+ defaults: {
+ mathbackground: t.INHERIT,
+ mathcolor: t.INHERIT,
+ edge: t.SIDE.LEFT,
+ },
+ isSpacelike: function () {
+ return !0;
+ },
+ })),
+ (t.mlabeledtr = t.mtr.Subclass({ type: "mlabeledtr" })),
+ (t.maction = t.mbase.Subclass({
+ type: "maction",
+ defaults: {
+ mathbackground: t.INHERIT,
+ mathcolor: t.INHERIT,
+ actiontype: t.ACTIONTYPE.TOGGLE,
+ selection: 1,
+ },
+ selected: function () {
+ return this.data[this.Get("selection") - 1] || t.NULL;
+ },
+ isEmbellished: function () {
+ return this.selected().isEmbellished();
+ },
+ isSpacelike: function () {
+ return this.selected().isSpacelike();
+ },
+ Core: function () {
+ return this.selected().Core();
+ },
+ CoreMO: function () {
+ return this.selected().CoreMO();
+ },
+ setTeXclass: function (e) {
+ this.Get("actiontype") === t.ACTIONTYPE.TOOLTIP &&
+ this.data[1] &&
+ this.data[1].setTeXclass();
+ var i = this.selected();
+ return (e = i.setTeXclass(e)), this.updateTeXclass(i), e;
+ },
+ })),
+ (t.semantics = t.mbase.Subclass({
+ type: "semantics",
+ notParent: !0,
+ isEmbellished: t.mbase.childEmbellished,
+ Core: t.mbase.childCore,
+ CoreMO: t.mbase.childCoreMO,
+ defaults: { definitionURL: null, encoding: null },
+ setTeXclass: t.mbase.setChildTeXclass,
+ getAnnotation: function (t) {
+ var e = MathJax.Hub.config.MathMenu.semanticsAnnotations[t];
+ if (e)
+ for (var i = 0, n = this.data.length; i < n; i++) {
+ var a = this.data[i].Get("encoding");
+ if (a)
+ for (var s = 0, r = e.length; s < r; s++)
+ if (e[s] === a) return this.data[i];
+ }
+ return null;
+ },
+ })),
+ (t.annotation = t.mbase.Subclass({
+ type: "annotation",
+ isChars: !0,
+ linebreakContainer: !0,
+ defaults: {
+ definitionURL: null,
+ encoding: null,
+ cd: "mathmlkeys",
+ name: "",
+ src: null,
+ },
+ })),
+ (t["annotation-xml"] = t.mbase.Subclass({
+ type: "annotation-xml",
+ linebreakContainer: !0,
+ defaults: {
+ definitionURL: null,
+ encoding: null,
+ cd: "mathmlkeys",
+ name: "",
+ src: null,
+ },
+ })),
+ (t.math = t.mstyle.Subclass({
+ type: "math",
+ defaults: {
+ mathvariant: t.VARIANT.NORMAL,
+ mathsize: t.SIZE.NORMAL,
+ mathcolor: "",
+ mathbackground: t.COLOR.TRANSPARENT,
+ dir: "ltr",
+ scriptlevel: 0,
+ displaystyle: t.AUTO,
+ display: "inline",
+ maxwidth: "",
+ overflow: t.OVERFLOW.LINEBREAK,
+ altimg: "",
+ "altimg-width": "",
+ "altimg-height": "",
+ "altimg-valign": "",
+ alttext: "",
+ cdgroup: "",
+ scriptsizemultiplier: Math.sqrt(0.5),
+ scriptminsize: "8px",
+ infixlinebreakstyle: t.LINEBREAKSTYLE.BEFORE,
+ lineleading: "1ex",
+ indentshift: "auto",
+ indentalign: t.INDENTALIGN.AUTO,
+ indentalignfirst: t.INDENTALIGN.INDENTALIGN,
+ indentshiftfirst: t.INDENTSHIFT.INDENTSHIFT,
+ indentalignlast: t.INDENTALIGN.INDENTALIGN,
+ indentshiftlast: t.INDENTSHIFT.INDENTSHIFT,
+ decimalseparator: ".",
+ texprimestyle: !1,
+ },
+ autoDefault: function (t) {
+ return "displaystyle" === t
+ ? "block" === this.Get("display")
+ : "";
+ },
+ linebreakContainer: !0,
+ setTeXclass: t.mbase.setChildTeXclass,
+ getAnnotation: function (t) {
+ return 1 != this.data.length
+ ? null
+ : this.data[0].getAnnotation(t);
+ },
+ })),
+ (t.chars = t.mbase.Subclass({
+ type: "chars",
+ Append: function () {
+ this.data.push.apply(this.data, arguments);
+ },
+ value: function () {
+ return this.data.join("");
+ },
+ toString: function () {
+ return this.data.join("");
+ },
+ })),
+ (t.entity = t.mbase.Subclass({
+ type: "entity",
+ Append: function () {
+ this.data.push.apply(this.data, arguments);
+ },
+ value: function () {
+ return "#x" === this.data[0].substr(0, 2)
+ ? parseInt(this.data[0].substr(2), 16)
+ : "#" === this.data[0].substr(0, 1)
+ ? parseInt(this.data[0].substr(1))
+ : 0;
+ },
+ toString: function () {
+ var t = this.value();
+ return t <= 65535
+ ? String.fromCharCode(t)
+ : ((t -= 65536),
+ String.fromCharCode(55296 + (t >> 10), 56320 + (1023 & t)));
+ },
+ })),
+ (t.xml = t.mbase.Subclass({
+ type: "xml",
+ Init: function () {
+ return (
+ (this.div = document.createElement("div")),
+ this.SUPER(arguments).Init.apply(this, arguments)
+ );
+ },
+ Append: function () {
+ for (var t = 0, e = arguments.length; t < e; t++) {
+ var i = this.Import(arguments[t]);
+ this.data.push(i), this.div.appendChild(i);
+ }
+ },
+ Import: function (t) {
+ if (document.importNode) return document.importNode(t, !0);
+ var e, i, n;
+ if (1 === t.nodeType) {
+ for (
+ e = document.createElement(t.nodeName),
+ i = 0,
+ n = t.attributes.length;
+ i < n;
+ i++
+ ) {
+ var a = t.attributes[i];
+ a.specified &&
+ null != a.nodeValue &&
+ "" != a.nodeValue &&
+ e.setAttribute(a.nodeName, a.nodeValue),
+ "style" === a.nodeName && (e.style.cssText = a.nodeValue);
+ }
+ t.className && (e.className = t.className);
+ } else if (3 === t.nodeType || 4 === t.nodeType)
+ e = document.createTextNode(t.nodeValue);
+ else {
+ if (8 !== t.nodeType) return document.createTextNode("");
+ e = document.createComment(t.nodeValue);
+ }
+ for (i = 0, n = t.childNodes.length; i < n; i++)
+ e.appendChild(this.Import(t.childNodes[i]));
+ return e;
+ },
+ value: function () {
+ return this.div;
+ },
+ toString: function () {
+ return this.div.innerHTML;
+ },
+ })),
+ (t.TeXAtom = t.mbase.Subclass({
+ type: "texatom",
+ linebreakContainer: !0,
+ inferRow: !0,
+ notParent: !0,
+ texClass: t.TEXCLASS.ORD,
+ Core: t.mbase.childCore,
+ CoreMO: t.mbase.childCoreMO,
+ isEmbellished: t.mbase.childEmbellished,
+ setTeXclass: function (t) {
+ return this.data[0].setTeXclass(), this.adjustTeXclass(t);
+ },
+ adjustTeXclass: t.mo.prototype.adjustTeXclass,
+ })),
+ (t.NULL = t.mbase().With({ type: "null" }));
+ var e = t.TEXCLASS,
+ i = {
+ ORD: [0, 0, e.ORD],
+ ORD11: [1, 1, e.ORD],
+ ORD21: [2, 1, e.ORD],
+ ORD02: [0, 2, e.ORD],
+ ORD55: [5, 5, e.ORD],
+ OP: [1, 2, e.OP, { largeop: !0, movablelimits: !0, symmetric: !0 }],
+ OPFIXED: [1, 2, e.OP, { largeop: !0, movablelimits: !0 }],
+ INTEGRAL: [0, 1, e.OP, { largeop: !0, symmetric: !0 }],
+ INTEGRAL2: [1, 2, e.OP, { largeop: !0, symmetric: !0 }],
+ BIN3: [3, 3, e.BIN],
+ BIN4: [4, 4, e.BIN],
+ BIN01: [0, 1, e.BIN],
+ BIN5: [5, 5, e.BIN],
+ TALLBIN: [4, 4, e.BIN, { stretchy: !0 }],
+ BINOP: [4, 4, e.BIN, { largeop: !0, movablelimits: !0 }],
+ REL: [5, 5, e.REL],
+ REL1: [1, 1, e.REL, { stretchy: !0 }],
+ REL4: [4, 4, e.REL],
+ RELSTRETCH: [5, 5, e.REL, { stretchy: !0 }],
+ RELACCENT: [5, 5, e.REL, { accent: !0 }],
+ WIDEREL: [5, 5, e.REL, { accent: !0, stretchy: !0 }],
+ OPEN: [0, 0, e.OPEN, { fence: !0, stretchy: !0, symmetric: !0 }],
+ CLOSE: [0, 0, e.CLOSE, { fence: !0, stretchy: !0, symmetric: !0 }],
+ INNER: [0, 0, e.INNER],
+ PUNCT: [0, 3, e.PUNCT],
+ ACCENT: [0, 0, e.ORD, { accent: !0 }],
+ WIDEACCENT: [0, 0, e.ORD, { accent: !0, stretchy: !0 }],
+ };
+ t.mo.Augment(
+ {
+ SPACE: [
+ "0em",
+ "0.1111em",
+ "0.1667em",
+ "0.2222em",
+ "0.2667em",
+ "0.3333em",
+ ],
+ RANGES: [
+ [32, 127, e.REL, "BasicLatin"],
+ [160, 255, e.ORD, "Latin1Supplement"],
+ [256, 383, e.ORD],
+ [384, 591, e.ORD],
+ [688, 767, e.ORD, "SpacingModLetters"],
+ [768, 879, e.ORD, "CombDiacritMarks"],
+ [880, 1023, e.ORD, "GreekAndCoptic"],
+ [7680, 7935, e.ORD],
+ [8192, 8303, e.PUNCT, "GeneralPunctuation"],
+ [8304, 8351, e.ORD],
+ [8352, 8399, e.ORD],
+ [8400, 8447, e.ORD, "CombDiactForSymbols"],
+ [8448, 8527, e.ORD, "LetterlikeSymbols"],
+ [8528, 8591, e.ORD],
+ [8592, 8703, e.REL, "Arrows"],
+ [8704, 8959, e.BIN, "MathOperators"],
+ [8960, 9215, e.ORD, "MiscTechnical"],
+ [9312, 9471, e.ORD],
+ [9472, 9631, e.ORD],
+ [9632, 9727, e.ORD, "GeometricShapes"],
+ [9984, 10175, e.ORD, "Dingbats"],
+ [10176, 10223, e.ORD, "MiscMathSymbolsA"],
+ [10224, 10239, e.REL, "SupplementalArrowsA"],
+ [10496, 10623, e.REL, "SupplementalArrowsB"],
+ [10624, 10751, e.ORD, "MiscMathSymbolsB"],
+ [10752, 11007, e.BIN, "SuppMathOperators"],
+ [11008, 11263, e.ORD, "MiscSymbolsAndArrows"],
+ [119808, 120831, e.ORD],
+ ],
+ OPTABLE: {
+ prefix: {
+ "\u2200": i.ORD21,
+ "\u2202": i.ORD21,
+ "\u2203": i.ORD21,
+ "\u2207": i.ORD21,
+ "\u220f": i.OP,
+ "\u2210": i.OP,
+ "\u2211": i.OP,
+ "\u2212": i.BIN01,
+ "\u2213": i.BIN01,
+ "\u221a": [1, 1, e.ORD, { stretchy: !0 }],
+ "\u2220": i.ORD,
+ "\u222b": i.INTEGRAL,
+ "\u222e": i.INTEGRAL,
+ "\u22c0": i.OP,
+ "\u22c1": i.OP,
+ "\u22c2": i.OP,
+ "\u22c3": i.OP,
+ "\u2308": i.OPEN,
+ "\u230a": i.OPEN,
+ "\u27e8": i.OPEN,
+ "\u27ee": i.OPEN,
+ "\u2a00": i.OP,
+ "\u2a01": i.OP,
+ "\u2a02": i.OP,
+ "\u2a04": i.OP,
+ "\u2a06": i.OP,
+ "\xac": i.ORD21,
+ "\xb1": i.BIN01,
+ "(": i.OPEN,
+ "+": i.BIN01,
+ "-": i.BIN01,
+ "[": i.OPEN,
+ "{": i.OPEN,
+ "|": i.OPEN,
+ },
+ postfix: {
+ "!": [1, 0, e.CLOSE],
+ "&": i.ORD,
+ "\u2032": i.ORD02,
+ "\u203e": i.WIDEACCENT,
+ "\u2309": i.CLOSE,
+ "\u230b": i.CLOSE,
+ "\u23de": i.WIDEACCENT,
+ "\u23df": i.WIDEACCENT,
+ "\u266d": i.ORD02,
+ "\u266e": i.ORD02,
+ "\u266f": i.ORD02,
+ "\u27e9": i.CLOSE,
+ "\u27ef": i.CLOSE,
+ "\u02c6": i.WIDEACCENT,
+ "\u02c7": i.WIDEACCENT,
+ "\u02c9": i.WIDEACCENT,
+ "\u02ca": i.ACCENT,
+ "\u02cb": i.ACCENT,
+ "\u02d8": i.ACCENT,
+ "\u02d9": i.ACCENT,
+ "\u02dc": i.WIDEACCENT,
+ "\u0302": i.WIDEACCENT,
+ "\xa8": i.ACCENT,
+ "\xaf": i.WIDEACCENT,
+ ")": i.CLOSE,
+ "]": i.CLOSE,
+ "^": i.WIDEACCENT,
+ _: i.WIDEACCENT,
+ "`": i.ACCENT,
+ "|": i.CLOSE,
+ "}": i.CLOSE,
+ "~": i.WIDEACCENT,
+ },
+ infix: {
+ "": i.ORD,
+ "%": [3, 3, e.ORD],
+ "\u2022": i.BIN4,
+ "\u2026": i.INNER,
+ "\u2044": i.TALLBIN,
+ "\u2061": i.ORD,
+ "\u2062": i.ORD,
+ "\u2063": [
+ 0,
+ 0,
+ e.ORD,
+ { linebreakstyle: "after", separator: !0 },
+ ],
+ "\u2064": i.ORD,
+ "\u2190": i.WIDEREL,
+ "\u2191": i.RELSTRETCH,
+ "\u2192": i.WIDEREL,
+ "\u2193": i.RELSTRETCH,
+ "\u2194": i.WIDEREL,
+ "\u2195": i.RELSTRETCH,
+ "\u2196": i.RELSTRETCH,
+ "\u2197": i.RELSTRETCH,
+ "\u2198": i.RELSTRETCH,
+ "\u2199": i.RELSTRETCH,
+ "\u21a6": i.WIDEREL,
+ "\u21a9": i.WIDEREL,
+ "\u21aa": i.WIDEREL,
+ "\u21bc": i.WIDEREL,
+ "\u21bd": i.WIDEREL,
+ "\u21c0": i.WIDEREL,
+ "\u21c1": i.WIDEREL,
+ "\u21cc": i.WIDEREL,
+ "\u21d0": i.WIDEREL,
+ "\u21d1": i.RELSTRETCH,
+ "\u21d2": i.WIDEREL,
+ "\u21d3": i.RELSTRETCH,
+ "\u21d4": i.WIDEREL,
+ "\u21d5": i.RELSTRETCH,
+ "\u2208": i.REL,
+ "\u2209": i.REL,
+ "\u220b": i.REL,
+ "\u2212": i.BIN4,
+ "\u2213": i.BIN4,
+ "\u2215": i.TALLBIN,
+ "\u2216": i.BIN4,
+ "\u2217": i.BIN4,
+ "\u2218": i.BIN4,
+ "\u2219": i.BIN4,
+ "\u221d": i.REL,
+ "\u2223": i.REL,
+ "\u2225": i.REL,
+ "\u2227": i.BIN4,
+ "\u2228": i.BIN4,
+ "\u2229": i.BIN4,
+ "\u222a": i.BIN4,
+ "\u223c": i.REL,
+ "\u2240": i.BIN4,
+ "\u2243": i.REL,
+ "\u2245": i.REL,
+ "\u2248": i.REL,
+ "\u224d": i.REL,
+ "\u2250": i.REL,
+ "\u2260": i.REL,
+ "\u2261": i.REL,
+ "\u2264": i.REL,
+ "\u2265": i.REL,
+ "\u226a": i.REL,
+ "\u226b": i.REL,
+ "\u227a": i.REL,
+ "\u227b": i.REL,
+ "\u2282": i.REL,
+ "\u2283": i.REL,
+ "\u2286": i.REL,
+ "\u2287": i.REL,
+ "\u228e": i.BIN4,
+ "\u2291": i.REL,
+ "\u2292": i.REL,
+ "\u2293": i.BIN4,
+ "\u2294": i.BIN4,
+ "\u2295": i.BIN4,
+ "\u2296": i.BIN4,
+ "\u2297": i.BIN4,
+ "\u2298": i.BIN4,
+ "\u2299": i.BIN4,
+ "\u22a2": i.REL,
+ "\u22a3": i.REL,
+ "\u22a4": i.ORD55,
+ "\u22a5": i.REL,
+ "\u22a8": i.REL,
+ "\u22c4": i.BIN4,
+ "\u22c5": i.BIN4,
+ "\u22c6": i.BIN4,
+ "\u22c8": i.REL,
+ "\u22ee": i.ORD55,
+ "\u22ef": i.INNER,
+ "\u22f1": [5, 5, e.INNER],
+ "\u25b3": i.BIN4,
+ "\u25b5": i.BIN4,
+ "\u25b9": i.BIN4,
+ "\u25bd": i.BIN4,
+ "\u25bf": i.BIN4,
+ "\u25c3": i.BIN4,
+ "\u2758": i.REL,
+ "\u27f5": i.WIDEREL,
+ "\u27f6": i.WIDEREL,
+ "\u27f7": i.WIDEREL,
+ "\u27f8": i.WIDEREL,
+ "\u27f9": i.WIDEREL,
+ "\u27fa": i.WIDEREL,
+ "\u27fc": i.WIDEREL,
+ "\u2a2f": i.BIN4,
+ "\u2a3f": i.BIN4,
+ "\u2aaf": i.REL,
+ "\u2ab0": i.REL,
+ "\xb1": i.BIN4,
+ "\xb7": i.BIN4,
+ "\xd7": i.BIN4,
+ "\xf7": i.BIN4,
+ "*": i.BIN3,
+ "+": i.BIN4,
+ ",": [
+ 0,
+ 3,
+ e.PUNCT,
+ { linebreakstyle: "after", separator: !0 },
+ ],
+ "-": i.BIN4,
+ ".": [3, 3, e.ORD],
+ "/": i.ORD11,
+ ":": [1, 2, e.REL],
+ ";": [
+ 0,
+ 3,
+ e.PUNCT,
+ { linebreakstyle: "after", separator: !0 },
+ ],
+ "<": i.REL,
+ "=": i.REL,
+ ">": i.REL,
+ "?": [1, 1, e.CLOSE],
+ "\\": i.ORD,
+ "^": i.ORD11,
+ _: i.ORD11,
+ "|": [2, 2, e.ORD, { fence: !0, stretchy: !0, symmetric: !0 }],
+ "#": i.ORD,
+ $: i.ORD,
+ ".": [0, 3, e.PUNCT, { separator: !0 }],
+ "\u02b9": i.ORD,
+ "\u0300": i.ACCENT,
+ "\u0301": i.ACCENT,
+ "\u0303": i.WIDEACCENT,
+ "\u0304": i.ACCENT,
+ "\u0306": i.ACCENT,
+ "\u0307": i.ACCENT,
+ "\u0308": i.ACCENT,
+ "\u030c": i.ACCENT,
+ "\u0332": i.WIDEACCENT,
+ "\u0338": i.REL4,
+ "\u2015": [0, 0, e.ORD, { stretchy: !0 }],
+ "\u2017": [0, 0, e.ORD, { stretchy: !0 }],
+ "\u2020": i.BIN3,
+ "\u2021": i.BIN3,
+ "\u20d7": i.ACCENT,
+ "\u2111": i.ORD,
+ "\u2113": i.ORD,
+ "\u2118": i.ORD,
+ "\u211c": i.ORD,
+ "\u2205": i.ORD,
+ "\u221e": i.ORD,
+ "\u2305": i.BIN3,
+ "\u2306": i.BIN3,
+ "\u2322": i.REL4,
+ "\u2323": i.REL4,
+ "\u2329": i.OPEN,
+ "\u232a": i.CLOSE,
+ "\u23aa": i.ORD,
+ "\u23af": [0, 0, e.ORD, { stretchy: !0 }],
+ "\u23b0": i.OPEN,
+ "\u23b1": i.CLOSE,
+ "\u2500": i.ORD,
+ "\u25ef": i.BIN3,
+ "\u2660": i.ORD,
+ "\u2661": i.ORD,
+ "\u2662": i.ORD,
+ "\u2663": i.ORD,
+ "\u3008": i.OPEN,
+ "\u3009": i.CLOSE,
+ "\ufe37": i.WIDEACCENT,
+ "\ufe38": i.WIDEACCENT,
+ },
+ },
+ },
+ { OPTYPES: i },
+ );
+ var n = t.mo.prototype.OPTABLE;
+ (n.infix["^"] = i.WIDEREL),
+ (n.infix._ = i.WIDEREL),
+ (n.prefix["\u2223"] = i.OPEN),
+ (n.prefix["\u2225"] = i.OPEN),
+ (n.postfix["\u2223"] = i.CLOSE),
+ (n.postfix["\u2225"] = i.CLOSE);
+ })(MathJax.ElementJax.mml),
+ MathJax.ElementJax.mml.loadComplete("jax.js");
+ },
+ function (t, e) {
+ (MathJax.InputJax.AsciiMath = MathJax.InputJax({
+ id: "AsciiMath",
+ version: "2.7.2",
+ directory: MathJax.InputJax.directory + "/AsciiMath",
+ extensionDir: MathJax.InputJax.extensionDir + "/AsciiMath",
+ config: {
+ fixphi: !0,
+ useMathMLspacing: !0,
+ displaystyle: !0,
+ decimalsign: ".",
+ },
+ })),
+ MathJax.InputJax.AsciiMath.Register("math/asciimath"),
+ MathJax.InputJax.AsciiMath.loadComplete("config.js");
+ },
+ function (t, e) {
+ var i, n;
+ !(function (t) {
+ var e,
+ i = MathJax.Object.Subclass({
+ firstChild: null,
+ lastChild: null,
+ Init: function () {
+ this.childNodes = [];
+ },
+ appendChild: function (t) {
+ return (
+ t.parent && t.parent.removeChild(t),
+ this.lastChild && (this.lastChild.nextSibling = t),
+ this.firstChild || (this.firstChild = t),
+ this.childNodes.push(t),
+ (t.parent = this),
+ (this.lastChild = t),
+ t
+ );
+ },
+ removeChild: function (t) {
+ for (
+ var e = 0, i = this.childNodes.length;
+ e < i && this.childNodes[e] !== t;
+ e++
+ );
+ if (e !== i)
+ return (
+ this.childNodes.splice(e, 1),
+ t === this.firstChild && (this.firstChild = t.nextSibling),
+ t === this.lastChild &&
+ (this.childNodes.length
+ ? (this.lastChild =
+ this.childNodes[this.childNodes.length - 1])
+ : (this.lastChild = null)),
+ e && (this.childNodes[e - 1].nextSibling = t.nextSibling),
+ (t.nextSibling = t.parent = null),
+ t
+ );
+ },
+ replaceChild: function (t, e) {
+ for (
+ var i = 0, n = this.childNodes.length;
+ i < n && this.childNodes[i] !== e;
+ i++
+ );
+ return (
+ i
+ ? (this.childNodes[i - 1].nextSibling = t)
+ : (this.firstChild = t),
+ i >= n - 1 && (this.lastChild = t),
+ (this.childNodes[i] = t),
+ (t.nextSibling = e.nextSibling),
+ (e.nextSibling = e.parent = null),
+ e
+ );
+ },
+ hasChildNodes: function (t) {
+ return this.childNodes.length > 0;
+ },
+ toString: function () {
+ return "{" + this.childNodes.join("") + "}";
+ },
+ }),
+ n = {
+ getElementById: !0,
+ createElementNS: function (i, n) {
+ var a = e[n]();
+ return (
+ "mo" === n &&
+ t.config.useMathMLspacing &&
+ (a.useMMLspacing = 128),
+ a
+ );
+ },
+ createTextNode: function (t) {
+ return e.chars(t).With({ nodeValue: t });
+ },
+ createDocumentFragment: function () {
+ return i();
+ },
+ },
+ a = { appName: "MathJax" },
+ s = "blue",
+ r = "serif",
+ o = !0,
+ l = !0,
+ u = ".",
+ h = "Microsoft" == a.appName.slice(0, 9);
+ function p(t) {
+ return h
+ ? n.createElement(t)
+ : n.createElementNS("http://www.w3.org/1999/xhtml", t);
+ }
+ var c = "http://www.w3.org/1998/Math/MathML";
+ function d(t) {
+ return h ? n.createElement("m:" + t) : n.createElementNS(c, t);
+ }
+ function m(t, e) {
+ var i;
+ return (
+ (i = h ? n.createElement("m:" + t) : n.createElementNS(c, t)),
+ e && i.appendChild(e),
+ i
+ );
+ }
+ var f = [
+ "\ud835\udc9c",
+ "\u212c",
+ "\ud835\udc9e",
+ "\ud835\udc9f",
+ "\u2130",
+ "\u2131",
+ "\ud835\udca2",
+ "\u210b",
+ "\u2110",
+ "\ud835\udca5",
+ "\ud835\udca6",
+ "\u2112",
+ "\u2133",
+ "\ud835\udca9",
+ "\ud835\udcaa",
+ "\ud835\udcab",
+ "\ud835\udcac",
+ "\u211b",
+ "\ud835\udcae",
+ "\ud835\udcaf",
+ "\ud835\udcb0",
+ "\ud835\udcb1",
+ "\ud835\udcb2",
+ "\ud835\udcb3",
+ "\ud835\udcb4",
+ "\ud835\udcb5",
+ "\ud835\udcb6",
+ "\ud835\udcb7",
+ "\ud835\udcb8",
+ "\ud835\udcb9",
+ "\u212f",
+ "\ud835\udcbb",
+ "\u210a",
+ "\ud835\udcbd",
+ "\ud835\udcbe",
+ "\ud835\udcbf",
+ "\ud835\udcc0",
+ "\ud835\udcc1",
+ "\ud835\udcc2",
+ "\ud835\udcc3",
+ "\u2134",
+ "\ud835\udcc5",
+ "\ud835\udcc6",
+ "\ud835\udcc7",
+ "\ud835\udcc8",
+ "\ud835\udcc9",
+ "\ud835\udcca",
+ "\ud835\udccb",
+ "\ud835\udccc",
+ "\ud835\udccd",
+ "\ud835\udcce",
+ "\ud835\udccf",
+ ],
+ g = [
+ "\ud835\udd04",
+ "\ud835\udd05",
+ "\u212d",
+ "\ud835\udd07",
+ "\ud835\udd08",
+ "\ud835\udd09",
+ "\ud835\udd0a",
+ "\u210c",
+ "\u2111",
+ "\ud835\udd0d",
+ "\ud835\udd0e",
+ "\ud835\udd0f",
+ "\ud835\udd10",
+ "\ud835\udd11",
+ "\ud835\udd12",
+ "\ud835\udd13",
+ "\ud835\udd14",
+ "\u211c",
+ "\ud835\udd16",
+ "\ud835\udd17",
+ "\ud835\udd18",
+ "\ud835\udd19",
+ "\ud835\udd1a",
+ "\ud835\udd1b",
+ "\ud835\udd1c",
+ "\u2128",
+ "\ud835\udd1e",
+ "\ud835\udd1f",
+ "\ud835\udd20",
+ "\ud835\udd21",
+ "\ud835\udd22",
+ "\ud835\udd23",
+ "\ud835\udd24",
+ "\ud835\udd25",
+ "\ud835\udd26",
+ "\ud835\udd27",
+ "\ud835\udd28",
+ "\ud835\udd29",
+ "\ud835\udd2a",
+ "\ud835\udd2b",
+ "\ud835\udd2c",
+ "\ud835\udd2d",
+ "\ud835\udd2e",
+ "\ud835\udd2f",
+ "\ud835\udd30",
+ "\ud835\udd31",
+ "\ud835\udd32",
+ "\ud835\udd33",
+ "\ud835\udd34",
+ "\ud835\udd35",
+ "\ud835\udd36",
+ "\ud835\udd37",
+ ],
+ E = [
+ "\ud835\udd38",
+ "\ud835\udd39",
+ "\u2102",
+ "\ud835\udd3b",
+ "\ud835\udd3c",
+ "\ud835\udd3d",
+ "\ud835\udd3e",
+ "\u210d",
+ "\ud835\udd40",
+ "\ud835\udd41",
+ "\ud835\udd42",
+ "\ud835\udd43",
+ "\ud835\udd44",
+ "\u2115",
+ "\ud835\udd46",
+ "\u2119",
+ "\u211a",
+ "\u211d",
+ "\ud835\udd4a",
+ "\ud835\udd4b",
+ "\ud835\udd4c",
+ "\ud835\udd4d",
+ "\ud835\udd4e",
+ "\ud835\udd4f",
+ "\ud835\udd50",
+ "\u2124",
+ "\ud835\udd52",
+ "\ud835\udd53",
+ "\ud835\udd54",
+ "\ud835\udd55",
+ "\ud835\udd56",
+ "\ud835\udd57",
+ "\ud835\udd58",
+ "\ud835\udd59",
+ "\ud835\udd5a",
+ "\ud835\udd5b",
+ "\ud835\udd5c",
+ "\ud835\udd5d",
+ "\ud835\udd5e",
+ "\ud835\udd5f",
+ "\ud835\udd60",
+ "\ud835\udd61",
+ "\ud835\udd62",
+ "\ud835\udd63",
+ "\ud835\udd64",
+ "\ud835\udd65",
+ "\ud835\udd66",
+ "\ud835\udd67",
+ "\ud835\udd68",
+ "\ud835\udd69",
+ "\ud835\udd6a",
+ "\ud835\udd6b",
+ ],
+ y = 8,
+ x = { input: '"', tag: "mtext", output: "mbox", tex: null, ttype: 10 },
+ T = [
+ { input: "alpha", tag: "mi", output: "\u03b1", tex: null, ttype: 0 },
+ { input: "beta", tag: "mi", output: "\u03b2", tex: null, ttype: 0 },
+ { input: "chi", tag: "mi", output: "\u03c7", tex: null, ttype: 0 },
+ { input: "delta", tag: "mi", output: "\u03b4", tex: null, ttype: 0 },
+ { input: "Delta", tag: "mo", output: "\u0394", tex: null, ttype: 0 },
+ {
+ input: "epsi",
+ tag: "mi",
+ output: "\u03b5",
+ tex: "epsilon",
+ ttype: 0,
+ },
+ {
+ input: "varepsilon",
+ tag: "mi",
+ output: "\u025b",
+ tex: null,
+ ttype: 0,
+ },
+ { input: "eta", tag: "mi", output: "\u03b7", tex: null, ttype: 0 },
+ { input: "gamma", tag: "mi", output: "\u03b3", tex: null, ttype: 0 },
+ { input: "Gamma", tag: "mo", output: "\u0393", tex: null, ttype: 0 },
+ { input: "iota", tag: "mi", output: "\u03b9", tex: null, ttype: 0 },
+ { input: "kappa", tag: "mi", output: "\u03ba", tex: null, ttype: 0 },
+ { input: "lambda", tag: "mi", output: "\u03bb", tex: null, ttype: 0 },
+ { input: "Lambda", tag: "mo", output: "\u039b", tex: null, ttype: 0 },
+ { input: "lamda", tag: "mi", output: "\u03bb", tex: null, ttype: 0 },
+ { input: "Lamda", tag: "mo", output: "\u039b", tex: null, ttype: 0 },
+ { input: "mu", tag: "mi", output: "\u03bc", tex: null, ttype: 0 },
+ { input: "nu", tag: "mi", output: "\u03bd", tex: null, ttype: 0 },
+ { input: "omega", tag: "mi", output: "\u03c9", tex: null, ttype: 0 },
+ { input: "Omega", tag: "mo", output: "\u03a9", tex: null, ttype: 0 },
+ { input: "phi", tag: "mi", output: "\u03d5", tex: null, ttype: 0 },
+ { input: "varphi", tag: "mi", output: "\u03c6", tex: null, ttype: 0 },
+ { input: "Phi", tag: "mo", output: "\u03a6", tex: null, ttype: 0 },
+ { input: "pi", tag: "mi", output: "\u03c0", tex: null, ttype: 0 },
+ { input: "Pi", tag: "mo", output: "\u03a0", tex: null, ttype: 0 },
+ { input: "psi", tag: "mi", output: "\u03c8", tex: null, ttype: 0 },
+ { input: "Psi", tag: "mi", output: "\u03a8", tex: null, ttype: 0 },
+ { input: "rho", tag: "mi", output: "\u03c1", tex: null, ttype: 0 },
+ { input: "sigma", tag: "mi", output: "\u03c3", tex: null, ttype: 0 },
+ { input: "Sigma", tag: "mo", output: "\u03a3", tex: null, ttype: 0 },
+ { input: "tau", tag: "mi", output: "\u03c4", tex: null, ttype: 0 },
+ { input: "theta", tag: "mi", output: "\u03b8", tex: null, ttype: 0 },
+ {
+ input: "vartheta",
+ tag: "mi",
+ output: "\u03d1",
+ tex: null,
+ ttype: 0,
+ },
+ { input: "Theta", tag: "mo", output: "\u0398", tex: null, ttype: 0 },
+ {
+ input: "upsilon",
+ tag: "mi",
+ output: "\u03c5",
+ tex: null,
+ ttype: 0,
+ },
+ { input: "xi", tag: "mi", output: "\u03be", tex: null, ttype: 0 },
+ { input: "Xi", tag: "mo", output: "\u039e", tex: null, ttype: 0 },
+ { input: "zeta", tag: "mi", output: "\u03b6", tex: null, ttype: 0 },
+ { input: "*", tag: "mo", output: "\u22c5", tex: "cdot", ttype: 0 },
+ { input: "**", tag: "mo", output: "\u2217", tex: "ast", ttype: 0 },
+ { input: "***", tag: "mo", output: "\u22c6", tex: "star", ttype: 0 },
+ { input: "//", tag: "mo", output: "/", tex: null, ttype: 0 },
+ {
+ input: "\\\\",
+ tag: "mo",
+ output: "\\",
+ tex: "backslash",
+ ttype: 0,
+ },
+ { input: "setminus", tag: "mo", output: "\\", tex: null, ttype: 0 },
+ { input: "xx", tag: "mo", output: "\xd7", tex: "times", ttype: 0 },
+ {
+ input: "|><",
+ tag: "mo",
+ output: "\u22c9",
+ tex: "ltimes",
+ ttype: 0,
+ },
+ {
+ input: "><|",
+ tag: "mo",
+ output: "\u22ca",
+ tex: "rtimes",
+ ttype: 0,
+ },
+ {
+ input: "|><|",
+ tag: "mo",
+ output: "\u22c8",
+ tex: "bowtie",
+ ttype: 0,
+ },
+ { input: "-:", tag: "mo", output: "\xf7", tex: "div", ttype: 0 },
+ { input: "divide", tag: "mo", output: "-:", tex: null, ttype: y },
+ { input: "@", tag: "mo", output: "\u2218", tex: "circ", ttype: 0 },
+ { input: "o+", tag: "mo", output: "\u2295", tex: "oplus", ttype: 0 },
+ { input: "ox", tag: "mo", output: "\u2297", tex: "otimes", ttype: 0 },
+ { input: "o.", tag: "mo", output: "\u2299", tex: "odot", ttype: 0 },
+ { input: "sum", tag: "mo", output: "\u2211", tex: null, ttype: 7 },
+ { input: "prod", tag: "mo", output: "\u220f", tex: null, ttype: 7 },
+ { input: "^^", tag: "mo", output: "\u2227", tex: "wedge", ttype: 0 },
+ {
+ input: "^^^",
+ tag: "mo",
+ output: "\u22c0",
+ tex: "bigwedge",
+ ttype: 7,
+ },
+ { input: "vv", tag: "mo", output: "\u2228", tex: "vee", ttype: 0 },
+ {
+ input: "vvv",
+ tag: "mo",
+ output: "\u22c1",
+ tex: "bigvee",
+ ttype: 7,
+ },
+ { input: "nn", tag: "mo", output: "\u2229", tex: "cap", ttype: 0 },
+ {
+ input: "nnn",
+ tag: "mo",
+ output: "\u22c2",
+ tex: "bigcap",
+ ttype: 7,
+ },
+ { input: "uu", tag: "mo", output: "\u222a", tex: "cup", ttype: 0 },
+ {
+ input: "uuu",
+ tag: "mo",
+ output: "\u22c3",
+ tex: "bigcup",
+ ttype: 7,
+ },
+ { input: "!=", tag: "mo", output: "\u2260", tex: "ne", ttype: 0 },
+ { input: ":=", tag: "mo", output: ":=", tex: null, ttype: 0 },
+ { input: "lt", tag: "mo", output: "<", tex: null, ttype: 0 },
+ { input: "<=", tag: "mo", output: "\u2264", tex: "le", ttype: 0 },
+ { input: "lt=", tag: "mo", output: "\u2264", tex: "leq", ttype: 0 },
+ { input: "gt", tag: "mo", output: ">", tex: null, ttype: 0 },
+ { input: ">=", tag: "mo", output: "\u2265", tex: "ge", ttype: 0 },
+ { input: "gt=", tag: "mo", output: "\u2265", tex: "geq", ttype: 0 },
+ { input: "-<", tag: "mo", output: "\u227a", tex: "prec", ttype: 0 },
+ { input: "-lt", tag: "mo", output: "\u227a", tex: null, ttype: 0 },
+ { input: ">-", tag: "mo", output: "\u227b", tex: "succ", ttype: 0 },
+ {
+ input: "-<=",
+ tag: "mo",
+ output: "\u2aaf",
+ tex: "preceq",
+ ttype: 0,
+ },
+ {
+ input: ">-=",
+ tag: "mo",
+ output: "\u2ab0",
+ tex: "succeq",
+ ttype: 0,
+ },
+ { input: "in", tag: "mo", output: "\u2208", tex: null, ttype: 0 },
+ { input: "!in", tag: "mo", output: "\u2209", tex: "notin", ttype: 0 },
+ {
+ input: "sub",
+ tag: "mo",
+ output: "\u2282",
+ tex: "subset",
+ ttype: 0,
+ },
+ {
+ input: "sup",
+ tag: "mo",
+ output: "\u2283",
+ tex: "supset",
+ ttype: 0,
+ },
+ {
+ input: "sube",
+ tag: "mo",
+ output: "\u2286",
+ tex: "subseteq",
+ ttype: 0,
+ },
+ {
+ input: "supe",
+ tag: "mo",
+ output: "\u2287",
+ tex: "supseteq",
+ ttype: 0,
+ },
+ { input: "-=", tag: "mo", output: "\u2261", tex: "equiv", ttype: 0 },
+ { input: "~=", tag: "mo", output: "\u2245", tex: "cong", ttype: 0 },
+ { input: "~~", tag: "mo", output: "\u2248", tex: "approx", ttype: 0 },
+ {
+ input: "prop",
+ tag: "mo",
+ output: "\u221d",
+ tex: "propto",
+ ttype: 0,
+ },
+ { input: "and", tag: "mtext", output: "and", tex: null, ttype: 6 },
+ { input: "or", tag: "mtext", output: "or", tex: null, ttype: 6 },
+ { input: "not", tag: "mo", output: "\xac", tex: "neg", ttype: 0 },
+ {
+ input: "=>",
+ tag: "mo",
+ output: "\u21d2",
+ tex: "implies",
+ ttype: 0,
+ },
+ { input: "if", tag: "mo", output: "if", tex: null, ttype: 6 },
+ { input: "<=>", tag: "mo", output: "\u21d4", tex: "iff", ttype: 0 },
+ { input: "AA", tag: "mo", output: "\u2200", tex: "forall", ttype: 0 },
+ { input: "EE", tag: "mo", output: "\u2203", tex: "exists", ttype: 0 },
+ { input: "_|_", tag: "mo", output: "\u22a5", tex: "bot", ttype: 0 },
+ { input: "TT", tag: "mo", output: "\u22a4", tex: "top", ttype: 0 },
+ { input: "|--", tag: "mo", output: "\u22a2", tex: "vdash", ttype: 0 },
+ {
+ input: "|==",
+ tag: "mo",
+ output: "\u22a8",
+ tex: "models",
+ ttype: 0,
+ },
+ { input: "(", tag: "mo", output: "(", tex: null, ttype: 4 },
+ { input: ")", tag: "mo", output: ")", tex: null, ttype: 5 },
+ { input: "[", tag: "mo", output: "[", tex: null, ttype: 4 },
+ { input: "]", tag: "mo", output: "]", tex: null, ttype: 5 },
+ { input: "{", tag: "mo", output: "{", tex: null, ttype: 4 },
+ { input: "}", tag: "mo", output: "}", tex: null, ttype: 5 },
+ { input: "|", tag: "mo", output: "|", tex: null, ttype: 9 },
+ { input: "(:", tag: "mo", output: "\u2329", tex: "langle", ttype: 4 },
+ { input: ":)", tag: "mo", output: "\u232a", tex: "rangle", ttype: 5 },
+ { input: "<<", tag: "mo", output: "\u2329", tex: null, ttype: 4 },
+ { input: ">>", tag: "mo", output: "\u232a", tex: null, ttype: 5 },
+ {
+ input: "{:",
+ tag: "mo",
+ output: "{:",
+ tex: null,
+ ttype: 4,
+ invisible: !0,
+ },
+ {
+ input: ":}",
+ tag: "mo",
+ output: ":}",
+ tex: null,
+ ttype: 5,
+ invisible: !0,
+ },
+ { input: "int", tag: "mo", output: "\u222b", tex: null, ttype: 0 },
+ { input: "dx", tag: "mi", output: "{:d x:}", tex: null, ttype: y },
+ { input: "dy", tag: "mi", output: "{:d y:}", tex: null, ttype: y },
+ { input: "dz", tag: "mi", output: "{:d z:}", tex: null, ttype: y },
+ { input: "dt", tag: "mi", output: "{:d t:}", tex: null, ttype: y },
+ { input: "oint", tag: "mo", output: "\u222e", tex: null, ttype: 0 },
+ {
+ input: "del",
+ tag: "mo",
+ output: "\u2202",
+ tex: "partial",
+ ttype: 0,
+ },
+ {
+ input: "grad",
+ tag: "mo",
+ output: "\u2207",
+ tex: "nabla",
+ ttype: 0,
+ },
+ { input: "+-", tag: "mo", output: "\xb1", tex: "pm", ttype: 0 },
+ {
+ input: "O/",
+ tag: "mo",
+ output: "\u2205",
+ tex: "emptyset",
+ ttype: 0,
+ },
+ { input: "oo", tag: "mo", output: "\u221e", tex: "infty", ttype: 0 },
+ { input: "aleph", tag: "mo", output: "\u2135", tex: null, ttype: 0 },
+ { input: "...", tag: "mo", output: "...", tex: "ldots", ttype: 0 },
+ {
+ input: ":.",
+ tag: "mo",
+ output: "\u2234",
+ tex: "therefore",
+ ttype: 0,
+ },
+ {
+ input: ":'",
+ tag: "mo",
+ output: "\u2235",
+ tex: "because",
+ ttype: 0,
+ },
+ { input: "/_", tag: "mo", output: "\u2220", tex: "angle", ttype: 0 },
+ {
+ input: "/_\\",
+ tag: "mo",
+ output: "\u25b3",
+ tex: "triangle",
+ ttype: 0,
+ },
+ { input: "'", tag: "mo", output: "\u2032", tex: "prime", ttype: 0 },
+ {
+ input: "tilde",
+ tag: "mover",
+ output: "~",
+ tex: null,
+ ttype: 1,
+ acc: !0,
+ },
+ { input: "\\ ", tag: "mo", output: "\xa0", tex: null, ttype: 0 },
+ { input: "frown", tag: "mo", output: "\u2322", tex: null, ttype: 0 },
+ { input: "quad", tag: "mo", output: "\xa0\xa0", tex: null, ttype: 0 },
+ {
+ input: "qquad",
+ tag: "mo",
+ output: "\xa0\xa0\xa0\xa0",
+ tex: null,
+ ttype: 0,
+ },
+ { input: "cdots", tag: "mo", output: "\u22ef", tex: null, ttype: 0 },
+ { input: "vdots", tag: "mo", output: "\u22ee", tex: null, ttype: 0 },
+ { input: "ddots", tag: "mo", output: "\u22f1", tex: null, ttype: 0 },
+ {
+ input: "diamond",
+ tag: "mo",
+ output: "\u22c4",
+ tex: null,
+ ttype: 0,
+ },
+ { input: "square", tag: "mo", output: "\u25a1", tex: null, ttype: 0 },
+ {
+ input: "|__",
+ tag: "mo",
+ output: "\u230a",
+ tex: "lfloor",
+ ttype: 0,
+ },
+ {
+ input: "__|",
+ tag: "mo",
+ output: "\u230b",
+ tex: "rfloor",
+ ttype: 0,
+ },
+ {
+ input: "|~",
+ tag: "mo",
+ output: "\u2308",
+ tex: "lceiling",
+ ttype: 0,
+ },
+ {
+ input: "~|",
+ tag: "mo",
+ output: "\u2309",
+ tex: "rceiling",
+ ttype: 0,
+ },
+ { input: "CC", tag: "mo", output: "\u2102", tex: null, ttype: 0 },
+ { input: "NN", tag: "mo", output: "\u2115", tex: null, ttype: 0 },
+ { input: "QQ", tag: "mo", output: "\u211a", tex: null, ttype: 0 },
+ { input: "RR", tag: "mo", output: "\u211d", tex: null, ttype: 0 },
+ { input: "ZZ", tag: "mo", output: "\u2124", tex: null, ttype: 0 },
+ { input: "f", tag: "mi", output: "f", tex: null, ttype: 1, func: !0 },
+ { input: "g", tag: "mi", output: "g", tex: null, ttype: 1, func: !0 },
+ { input: "lim", tag: "mo", output: "lim", tex: null, ttype: 7 },
+ { input: "Lim", tag: "mo", output: "Lim", tex: null, ttype: 7 },
+ {
+ input: "sin",
+ tag: "mo",
+ output: "sin",
+ tex: null,
+ ttype: 1,
+ func: !0,
+ },
+ {
+ input: "cos",
+ tag: "mo",
+ output: "cos",
+ tex: null,
+ ttype: 1,
+ func: !0,
+ },
+ {
+ input: "tan",
+ tag: "mo",
+ output: "tan",
+ tex: null,
+ ttype: 1,
+ func: !0,
+ },
+ {
+ input: "sinh",
+ tag: "mo",
+ output: "sinh",
+ tex: null,
+ ttype: 1,
+ func: !0,
+ },
+ {
+ input: "cosh",
+ tag: "mo",
+ output: "cosh",
+ tex: null,
+ ttype: 1,
+ func: !0,
+ },
+ {
+ input: "tanh",
+ tag: "mo",
+ output: "tanh",
+ tex: null,
+ ttype: 1,
+ func: !0,
+ },
+ {
+ input: "cot",
+ tag: "mo",
+ output: "cot",
+ tex: null,
+ ttype: 1,
+ func: !0,
+ },
+ {
+ input: "sec",
+ tag: "mo",
+ output: "sec",
+ tex: null,
+ ttype: 1,
+ func: !0,
+ },
+ {
+ input: "csc",
+ tag: "mo",
+ output: "csc",
+ tex: null,
+ ttype: 1,
+ func: !0,
+ },
+ {
+ input: "arcsin",
+ tag: "mo",
+ output: "arcsin",
+ tex: null,
+ ttype: 1,
+ func: !0,
+ },
+ {
+ input: "arccos",
+ tag: "mo",
+ output: "arccos",
+ tex: null,
+ ttype: 1,
+ func: !0,
+ },
+ {
+ input: "arctan",
+ tag: "mo",
+ output: "arctan",
+ tex: null,
+ ttype: 1,
+ func: !0,
+ },
+ {
+ input: "coth",
+ tag: "mo",
+ output: "coth",
+ tex: null,
+ ttype: 1,
+ func: !0,
+ },
+ {
+ input: "sech",
+ tag: "mo",
+ output: "sech",
+ tex: null,
+ ttype: 1,
+ func: !0,
+ },
+ {
+ input: "csch",
+ tag: "mo",
+ output: "csch",
+ tex: null,
+ ttype: 1,
+ func: !0,
+ },
+ {
+ input: "exp",
+ tag: "mo",
+ output: "exp",
+ tex: null,
+ ttype: 1,
+ func: !0,
+ },
+ {
+ input: "abs",
+ tag: "mo",
+ output: "abs",
+ tex: null,
+ ttype: 1,
+ rewriteleftright: ["|", "|"],
+ },
+ {
+ input: "norm",
+ tag: "mo",
+ output: "norm",
+ tex: null,
+ ttype: 1,
+ rewriteleftright: ["\u2225", "\u2225"],
+ },
+ {
+ input: "floor",
+ tag: "mo",
+ output: "floor",
+ tex: null,
+ ttype: 1,
+ rewriteleftright: ["\u230a", "\u230b"],
+ },
+ {
+ input: "ceil",
+ tag: "mo",
+ output: "ceil",
+ tex: null,
+ ttype: 1,
+ rewriteleftright: ["\u2308", "\u2309"],
+ },
+ {
+ input: "log",
+ tag: "mo",
+ output: "log",
+ tex: null,
+ ttype: 1,
+ func: !0,
+ },
+ {
+ input: "ln",
+ tag: "mo",
+ output: "ln",
+ tex: null,
+ ttype: 1,
+ func: !0,
+ },
+ {
+ input: "det",
+ tag: "mo",
+ output: "det",
+ tex: null,
+ ttype: 1,
+ func: !0,
+ },
+ { input: "dim", tag: "mo", output: "dim", tex: null, ttype: 0 },
+ { input: "mod", tag: "mo", output: "mod", tex: null, ttype: 0 },
+ {
+ input: "gcd",
+ tag: "mo",
+ output: "gcd",
+ tex: null,
+ ttype: 1,
+ func: !0,
+ },
+ {
+ input: "lcm",
+ tag: "mo",
+ output: "lcm",
+ tex: null,
+ ttype: 1,
+ func: !0,
+ },
+ { input: "lub", tag: "mo", output: "lub", tex: null, ttype: 0 },
+ { input: "glb", tag: "mo", output: "glb", tex: null, ttype: 0 },
+ { input: "min", tag: "mo", output: "min", tex: null, ttype: 7 },
+ { input: "max", tag: "mo", output: "max", tex: null, ttype: 7 },
+ {
+ input: "uarr",
+ tag: "mo",
+ output: "\u2191",
+ tex: "uparrow",
+ ttype: 0,
+ },
+ {
+ input: "darr",
+ tag: "mo",
+ output: "\u2193",
+ tex: "downarrow",
+ ttype: 0,
+ },
+ {
+ input: "rarr",
+ tag: "mo",
+ output: "\u2192",
+ tex: "rightarrow",
+ ttype: 0,
+ },
+ { input: "->", tag: "mo", output: "\u2192", tex: "to", ttype: 0 },
+ {
+ input: ">->",
+ tag: "mo",
+ output: "\u21a3",
+ tex: "rightarrowtail",
+ ttype: 0,
+ },
+ {
+ input: "->>",
+ tag: "mo",
+ output: "\u21a0",
+ tex: "twoheadrightarrow",
+ ttype: 0,
+ },
+ {
+ input: ">->>",
+ tag: "mo",
+ output: "\u2916",
+ tex: "twoheadrightarrowtail",
+ ttype: 0,
+ },
+ {
+ input: "|->",
+ tag: "mo",
+ output: "\u21a6",
+ tex: "mapsto",
+ ttype: 0,
+ },
+ {
+ input: "larr",
+ tag: "mo",
+ output: "\u2190",
+ tex: "leftarrow",
+ ttype: 0,
+ },
+ {
+ input: "harr",
+ tag: "mo",
+ output: "\u2194",
+ tex: "leftrightarrow",
+ ttype: 0,
+ },
+ {
+ input: "rArr",
+ tag: "mo",
+ output: "\u21d2",
+ tex: "Rightarrow",
+ ttype: 0,
+ },
+ {
+ input: "lArr",
+ tag: "mo",
+ output: "\u21d0",
+ tex: "Leftarrow",
+ ttype: 0,
+ },
+ {
+ input: "hArr",
+ tag: "mo",
+ output: "\u21d4",
+ tex: "Leftrightarrow",
+ ttype: 0,
+ },
+ { input: "sqrt", tag: "msqrt", output: "sqrt", tex: null, ttype: 1 },
+ { input: "root", tag: "mroot", output: "root", tex: null, ttype: 2 },
+ { input: "frac", tag: "mfrac", output: "/", tex: null, ttype: 2 },
+ { input: "/", tag: "mfrac", output: "/", tex: null, ttype: 3 },
+ {
+ input: "stackrel",
+ tag: "mover",
+ output: "stackrel",
+ tex: null,
+ ttype: 2,
+ },
+ {
+ input: "overset",
+ tag: "mover",
+ output: "stackrel",
+ tex: null,
+ ttype: 2,
+ },
+ {
+ input: "underset",
+ tag: "munder",
+ output: "stackrel",
+ tex: null,
+ ttype: 2,
+ },
+ { input: "_", tag: "msub", output: "_", tex: null, ttype: 3 },
+ { input: "^", tag: "msup", output: "^", tex: null, ttype: 3 },
+ {
+ input: "hat",
+ tag: "mover",
+ output: "^",
+ tex: null,
+ ttype: 1,
+ acc: !0,
+ },
+ {
+ input: "bar",
+ tag: "mover",
+ output: "\xaf",
+ tex: "overline",
+ ttype: 1,
+ acc: !0,
+ },
+ {
+ input: "vec",
+ tag: "mover",
+ output: "\u2192",
+ tex: null,
+ ttype: 1,
+ acc: !0,
+ },
+ {
+ input: "dot",
+ tag: "mover",
+ output: ".",
+ tex: null,
+ ttype: 1,
+ acc: !0,
+ },
+ {
+ input: "ddot",
+ tag: "mover",
+ output: "..",
+ tex: null,
+ ttype: 1,
+ acc: !0,
+ },
+ {
+ input: "ul",
+ tag: "munder",
+ output: "\u0332",
+ tex: "underline",
+ ttype: 1,
+ acc: !0,
+ },
+ {
+ input: "ubrace",
+ tag: "munder",
+ output: "\u23df",
+ tex: "underbrace",
+ ttype: 15,
+ acc: !0,
+ },
+ {
+ input: "obrace",
+ tag: "mover",
+ output: "\u23de",
+ tex: "overbrace",
+ ttype: 15,
+ acc: !0,
+ },
+ { input: "text", tag: "mtext", output: "text", tex: null, ttype: 10 },
+ { input: "mbox", tag: "mtext", output: "mbox", tex: null, ttype: 10 },
+ { input: "color", tag: "mstyle", ttype: 2 },
+ {
+ input: "cancel",
+ tag: "menclose",
+ output: "cancel",
+ tex: null,
+ ttype: 1,
+ },
+ x,
+ {
+ input: "bb",
+ tag: "mstyle",
+ atname: "mathvariant",
+ atval: "bold",
+ output: "bb",
+ tex: null,
+ ttype: 1,
+ },
+ {
+ input: "mathbf",
+ tag: "mstyle",
+ atname: "mathvariant",
+ atval: "bold",
+ output: "mathbf",
+ tex: null,
+ ttype: 1,
+ },
+ {
+ input: "sf",
+ tag: "mstyle",
+ atname: "mathvariant",
+ atval: "sans-serif",
+ output: "sf",
+ tex: null,
+ ttype: 1,
+ },
+ {
+ input: "mathsf",
+ tag: "mstyle",
+ atname: "mathvariant",
+ atval: "sans-serif",
+ output: "mathsf",
+ tex: null,
+ ttype: 1,
+ },
+ {
+ input: "bbb",
+ tag: "mstyle",
+ atname: "mathvariant",
+ atval: "double-struck",
+ output: "bbb",
+ tex: null,
+ ttype: 1,
+ codes: E,
+ },
+ {
+ input: "mathbb",
+ tag: "mstyle",
+ atname: "mathvariant",
+ atval: "double-struck",
+ output: "mathbb",
+ tex: null,
+ ttype: 1,
+ codes: E,
+ },
+ {
+ input: "cc",
+ tag: "mstyle",
+ atname: "mathvariant",
+ atval: "script",
+ output: "cc",
+ tex: null,
+ ttype: 1,
+ codes: f,
+ },
+ {
+ input: "mathcal",
+ tag: "mstyle",
+ atname: "mathvariant",
+ atval: "script",
+ output: "mathcal",
+ tex: null,
+ ttype: 1,
+ codes: f,
+ },
+ {
+ input: "tt",
+ tag: "mstyle",
+ atname: "mathvariant",
+ atval: "monospace",
+ output: "tt",
+ tex: null,
+ ttype: 1,
+ },
+ {
+ input: "mathtt",
+ tag: "mstyle",
+ atname: "mathvariant",
+ atval: "monospace",
+ output: "mathtt",
+ tex: null,
+ ttype: 1,
+ },
+ {
+ input: "fr",
+ tag: "mstyle",
+ atname: "mathvariant",
+ atval: "fraktur",
+ output: "fr",
+ tex: null,
+ ttype: 1,
+ codes: g,
+ },
+ {
+ input: "mathfrak",
+ tag: "mstyle",
+ atname: "mathvariant",
+ atval: "fraktur",
+ output: "mathfrak",
+ tex: null,
+ ttype: 1,
+ codes: g,
+ },
+ ];
+ function C(t, e) {
+ return t.input > e.input ? 1 : -1;
+ }
+ var b,
+ S,
+ I,
+ N = [];
+ function A() {
+ var t,
+ e = T.length;
+ for (t = 0; t < e; t++)
+ T[t].tex &&
+ T.push({
+ input: T[t].tex,
+ tag: T[t].tag,
+ output: T[t].output,
+ ttype: T[t].ttype,
+ acc: T[t].acc || !1,
+ });
+ v();
+ }
+ function v() {
+ var t;
+ for (T.sort(C), t = 0; t < T.length; t++) N[t] = T[t].input;
+ }
+ function R(t, e) {
+ var i;
+ i =
+ "\\" == t.charAt(e) &&
+ "\\" != t.charAt(e + 1) &&
+ " " != t.charAt(e + 1)
+ ? t.slice(e + 1)
+ : t.slice(e);
+ for (var n = 0; n < i.length && i.charCodeAt(n) <= 32; n += 1);
+ return i.slice(n);
+ }
+ function O(t, e, i) {
+ if (0 == i) {
+ var n, a;
+ for (i = -1, n = t.length; i + 1 < n; )
+ t[(a = (i + n) >> 1)] < e ? (i = a) : (n = a);
+ return n;
+ }
+ for (var s = i; s < t.length && t[s] < e; s++);
+ return s;
+ }
+ function L(t) {
+ for (var e, i, n, a = 0, s = "", r = !0, o = 1; o <= t.length && r; o++)
+ (i = t.slice(0, o)),
+ (a = O(N, i, a)) < N.length &&
+ t.slice(0, N[a].length) == N[a] &&
+ ((e = a), (o = (s = N[a]).length)),
+ (r = a < N.length && t.slice(0, N[a].length) >= N[a]);
+ if (((S = I), "" != s)) return (I = T[e].ttype), T[e];
+ (I = 0), (a = 1), (i = t.slice(0, 1));
+ for (var l = !0; "0" <= i && i <= "9" && a <= t.length; )
+ (i = t.slice(a, a + 1)), a++;
+ if (i == u && "0" <= (i = t.slice(a, a + 1)) && i <= "9")
+ for (l = !1, a++; "0" <= i && i <= "9" && a <= t.length; )
+ (i = t.slice(a, a + 1)), a++;
+ return (
+ (l && a > 1) || a > 2
+ ? ((i = t.slice(0, a - 1)), (n = "mn"))
+ : ((a = 2),
+ (n =
+ ("A" > (i = t.slice(0, 1)) || i > "Z") && ("a" > i || i > "z")
+ ? "mo"
+ : "mi")),
+ "-" == i && 3 == S
+ ? ((I = 3), { input: i, tag: n, output: i, ttype: 1, func: !0 })
+ : { input: i, tag: n, output: i, ttype: 0 }
+ );
+ }
+ function M(t) {
+ var e;
+ t.hasChildNodes() &&
+ (!t.firstChild.hasChildNodes() ||
+ ("mrow" != t.nodeName && "M:MROW" != t.nodeName) ||
+ ("(" != (e = t.firstChild.firstChild.nodeValue) &&
+ "[" != e &&
+ "{" != e) ||
+ t.removeChild(t.firstChild),
+ !t.lastChild.hasChildNodes() ||
+ ("mrow" != t.nodeName && "M:MROW" != t.nodeName) ||
+ (")" != (e = t.lastChild.firstChild.nodeValue) &&
+ "]" != e &&
+ "}" != e) ||
+ t.removeChild(t.lastChild));
+ }
+ function D(t) {
+ var e,
+ i,
+ a,
+ s,
+ r,
+ o = n.createDocumentFragment();
+ if (null == (e = L((t = R(t, 0)))) || (5 == e.ttype && b > 0))
+ return [null, t];
+ switch (
+ (e.ttype == y && (e = L((t = e.output + R(t, e.input.length)))),
+ e.ttype)
+ ) {
+ case 7:
+ case 0:
+ return (
+ (t = R(t, e.input.length)),
+ [m(e.tag, n.createTextNode(e.output)), t]
+ );
+ case 4:
+ return (
+ b++,
+ (a = k((t = R(t, e.input.length)), !0)),
+ b--,
+ "boolean" == typeof e.invisible && e.invisible
+ ? (i = m("mrow", a[0]))
+ : ((i = m("mo", n.createTextNode(e.output))),
+ (i = m("mrow", i)).appendChild(a[0])),
+ [i, a[1]]
+ );
+ case 10:
+ return (
+ e != x && (t = R(t, e.input.length)),
+ -1 ==
+ (s =
+ "{" == t.charAt(0)
+ ? t.indexOf("}")
+ : "(" == t.charAt(0)
+ ? t.indexOf(")")
+ : "[" == t.charAt(0)
+ ? t.indexOf("]")
+ : e == x
+ ? t.slice(1).indexOf('"') + 1
+ : 0) && (s = t.length),
+ " " == (r = t.slice(1, s)).charAt(0) &&
+ ((i = m("mspace")).setAttribute("width", "1ex"),
+ o.appendChild(i)),
+ o.appendChild(m(e.tag, n.createTextNode(r))),
+ " " == r.charAt(r.length - 1) &&
+ ((i = m("mspace")).setAttribute("width", "1ex"),
+ o.appendChild(i)),
+ (t = R(t, s + 1)),
+ [m("mrow", o), t]
+ );
+ case 15:
+ case 1:
+ if (null == (a = D((t = R(t, e.input.length))))[0])
+ return [m(e.tag, n.createTextNode(e.output)), t];
+ if ("boolean" == typeof e.func && e.func)
+ return "^" == (r = t.charAt(0)) ||
+ "_" == r ||
+ "/" == r ||
+ "|" == r ||
+ "," == r ||
+ (1 == e.input.length && e.input.match(/\w/) && "(" != r)
+ ? [m(e.tag, n.createTextNode(e.output)), t]
+ : ((i = m(
+ "mrow",
+ m(e.tag, n.createTextNode(e.output)),
+ )).appendChild(a[0]),
+ [i, a[1]]);
+ if ((M(a[0]), "sqrt" == e.input)) return [m(e.tag, a[0]), a[1]];
+ if (void 0 !== e.rewriteleftright)
+ return (
+ (i = m(
+ "mrow",
+ m("mo", n.createTextNode(e.rewriteleftright[0])),
+ )).appendChild(a[0]),
+ i.appendChild(m("mo", n.createTextNode(e.rewriteleftright[1]))),
+ [i, a[1]]
+ );
+ if ("cancel" == e.input)
+ return (
+ (i = m(e.tag, a[0])).setAttribute(
+ "notation",
+ "updiagonalstrike",
+ ),
+ [i, a[1]]
+ );
+ if ("boolean" == typeof e.acc && e.acc)
+ return (
+ (i = m(e.tag, a[0])).appendChild(
+ m("mo", n.createTextNode(e.output)),
+ ),
+ [i, a[1]]
+ );
+ if (!h && void 0 !== e.codes)
+ for (s = 0; s < a[0].childNodes.length; s++)
+ if (
+ "mi" == a[0].childNodes[s].nodeName ||
+ "mi" == a[0].nodeName
+ ) {
+ r =
+ "mi" == a[0].nodeName
+ ? a[0].firstChild.nodeValue
+ : a[0].childNodes[s].firstChild.nodeValue;
+ for (var l = [], u = 0; u < r.length; u++)
+ r.charCodeAt(u) > 64 && r.charCodeAt(u) < 91
+ ? (l += e.codes[r.charCodeAt(u) - 65])
+ : r.charCodeAt(u) > 96 && r.charCodeAt(u) < 123
+ ? (l += e.codes[r.charCodeAt(u) - 71])
+ : (l += r.charAt(u));
+ "mi" == a[0].nodeName
+ ? (a[0] = m("mo").appendChild(n.createTextNode(l)))
+ : a[0].replaceChild(
+ m("mo").appendChild(n.createTextNode(l)),
+ a[0].childNodes[s],
+ );
+ }
+ return (
+ (i = m(e.tag, a[0])).setAttribute(e.atname, e.atval), [i, a[1]]
+ );
+ case 2:
+ if (null == (a = D((t = R(t, e.input.length))))[0])
+ return [m("mo", n.createTextNode(e.input)), t];
+ M(a[0]);
+ var p = D(a[1]);
+ return null == p[0]
+ ? [m("mo", n.createTextNode(e.input)), t]
+ : (M(p[0]),
+ "color" == e.input
+ ? ("{" == t.charAt(0)
+ ? (s = t.indexOf("}"))
+ : "(" == t.charAt(0)
+ ? (s = t.indexOf(")"))
+ : "[" == t.charAt(0) && (s = t.indexOf("]")),
+ (r = t.slice(1, s)),
+ (i = m(e.tag, p[0])).setAttribute("mathcolor", r),
+ [i, p[1]])
+ : (("root" != e.input && "stackrel" != e.output) ||
+ o.appendChild(p[0]),
+ o.appendChild(a[0]),
+ "frac" == e.input && o.appendChild(p[0]),
+ [m(e.tag, o), p[1]]));
+ case 3:
+ return (
+ (t = R(t, e.input.length)),
+ [m("mo", n.createTextNode(e.output)), t]
+ );
+ case 6:
+ return (
+ (t = R(t, e.input.length)),
+ (i = m("mspace")).setAttribute("width", "1ex"),
+ o.appendChild(i),
+ o.appendChild(m(e.tag, n.createTextNode(e.output))),
+ (i = m("mspace")).setAttribute("width", "1ex"),
+ o.appendChild(i),
+ [m("mrow", o), t]
+ );
+ case 9:
+ return (
+ b++,
+ (a = k((t = R(t, e.input.length)), !1)),
+ b--,
+ (r = ""),
+ null != a[0].lastChild &&
+ (r = a[0].lastChild.firstChild.nodeValue),
+ "|" == r
+ ? ((i = m("mo", n.createTextNode(e.output))),
+ (i = m("mrow", i)).appendChild(a[0]),
+ [i, a[1]])
+ : ((i = m("mo", n.createTextNode("\u2223"))),
+ [(i = m("mrow", i)), t])
+ );
+ default:
+ return (
+ (t = R(t, e.input.length)),
+ [m(e.tag, n.createTextNode(e.output)), t]
+ );
+ }
+ }
+ function P(t) {
+ var e, i, a, s, r, o;
+ if (
+ ((i = L((t = R(t, 0)))),
+ (s = (r = D(t))[0]),
+ 3 == (e = L((t = r[1]))).ttype && "/" != e.input)
+ ) {
+ if (
+ (null == (r = D((t = R(t, e.input.length))))[0]
+ ? (r[0] = m("mo", n.createTextNode("\u25a1")))
+ : M(r[0]),
+ (t = r[1]),
+ (o = 7 == i.ttype || 15 == i.ttype),
+ "_" == e.input)
+ )
+ if ("^" == (a = L(t)).input) {
+ var l = D((t = R(t, a.input.length)));
+ M(l[0]),
+ (t = l[1]),
+ (s = m(o ? "munderover" : "msubsup", s)).appendChild(r[0]),
+ s.appendChild(l[0]),
+ (s = m("mrow", s));
+ } else (s = m(o ? "munder" : "msub", s)).appendChild(r[0]);
+ else
+ "^" == e.input && o
+ ? (s = m("mover", s)).appendChild(r[0])
+ : (s = m(e.tag, s)).appendChild(r[0]);
+ void 0 !== i.func &&
+ i.func &&
+ 3 != (a = L(t)).ttype &&
+ 5 != a.ttype &&
+ ((r = P(t)), (s = m("mrow", s)).appendChild(r[0]), (t = r[1]));
+ }
+ return [s, t];
+ }
+ function k(t, e) {
+ var i,
+ a,
+ s,
+ r,
+ o = n.createDocumentFragment();
+ do {
+ (a = (s = P((t = R(t, 0))))[0]),
+ 3 == (i = L((t = s[1]))).ttype && "/" == i.input
+ ? (null == (s = P((t = R(t, i.input.length))))[0]
+ ? (s[0] = m("mo", n.createTextNode("\u25a1")))
+ : M(s[0]),
+ (t = s[1]),
+ M(a),
+ (a = m(i.tag, a)).appendChild(s[0]),
+ o.appendChild(a),
+ (i = L(t)))
+ : null != a && o.appendChild(a);
+ } while (
+ ((5 != i.ttype && (9 != i.ttype || e)) || 0 == b) &&
+ null != i &&
+ "" != i.output
+ );
+ if (5 == i.ttype || 9 == i.ttype) {
+ var l = o.childNodes.length;
+ if (
+ l > 0 &&
+ "mrow" == o.childNodes[l - 1].nodeName &&
+ o.childNodes[l - 1].lastChild &&
+ o.childNodes[l - 1].lastChild.firstChild
+ ) {
+ var u = o.childNodes[l - 1].lastChild.firstChild.nodeValue;
+ if (")" == u || "]" == u) {
+ var h = o.childNodes[l - 1].firstChild.firstChild.nodeValue;
+ if (
+ ("(" == h && ")" == u && "}" != i.output) ||
+ ("[" == h && "]" == u)
+ ) {
+ var p = [],
+ c = !0,
+ d = o.childNodes.length;
+ for (r = 0; c && r < d; r += 2) {
+ if (
+ ((p[r] = []),
+ (a = o.childNodes[r]),
+ c &&
+ (c =
+ "mrow" == a.nodeName &&
+ (r == d - 1 ||
+ ("mo" == a.nextSibling.nodeName &&
+ "," == a.nextSibling.firstChild.nodeValue)) &&
+ a.firstChild.firstChild.nodeValue == h &&
+ a.lastChild.firstChild.nodeValue == u),
+ c)
+ )
+ for (var f = 0; f < a.childNodes.length; f++)
+ "," == a.childNodes[f].firstChild.nodeValue &&
+ (p[r][p[r].length] = f);
+ c && r > 1 && (c = p[r].length == p[r - 2].length);
+ }
+ if ((c = c && (p.length > 1 || p[0].length > 0))) {
+ var g,
+ E,
+ y,
+ x,
+ T = n.createDocumentFragment();
+ for (r = 0; r < d; r += 2) {
+ for (
+ g = n.createDocumentFragment(),
+ E = n.createDocumentFragment(),
+ y = (a = o.firstChild).childNodes.length,
+ x = 0,
+ a.removeChild(a.firstChild),
+ f = 1;
+ f < y - 1;
+ f++
+ )
+ void 0 !== p[r][x] && f == p[r][x]
+ ? (a.removeChild(a.firstChild),
+ g.appendChild(m("mtd", E)),
+ x++)
+ : E.appendChild(a.firstChild);
+ g.appendChild(m("mtd", E)),
+ o.childNodes.length > 2 &&
+ (o.removeChild(o.firstChild),
+ o.removeChild(o.firstChild)),
+ T.appendChild(m("mtr", g));
+ }
+ (a = m("mtable", T)),
+ "boolean" == typeof i.invisible &&
+ i.invisible &&
+ a.setAttribute("columnalign", "left"),
+ o.replaceChild(a, o.firstChild);
+ }
+ }
+ }
+ }
+ (t = R(t, i.input.length)),
+ ("boolean" == typeof i.invisible && i.invisible) ||
+ ((a = m("mo", n.createTextNode(i.output))), o.appendChild(a));
+ }
+ return [o, t];
+ }
+ function H(t, e) {
+ var i;
+ return (
+ (b = 0),
+ (i = m(
+ "mstyle",
+ k(
+ (t = (t = (t = (t = t.replace(/ /g, "")).replace(
+ />/g,
+ ">",
+ )).replace(/</g, "<")).replace(
+ /(Sin|Cos|Tan|Arcsin|Arccos|Arctan|Sinh|Cosh|Tanh|Cot|Sec|Csc|Log|Ln|Abs)/g,
+ function (t) {
+ return t.toLowerCase();
+ },
+ )).replace(/^\s+/g, ""),
+ !1,
+ )[0],
+ )),
+ "" != s && i.setAttribute("mathcolor", s),
+ "" != r && i.setAttribute("fontfamily", r),
+ o && i.setAttribute("displaystyle", "true"),
+ (i = m("math", i)),
+ l && i.setAttribute("title", t.replace(/\s+/g, " ")),
+ i
+ );
+ }
+ (l = !1),
+ (r = ""),
+ (s = ""),
+ (function () {
+ for (var t = 0, e = T.length; t < e; t++)
+ T[t].codes && delete T[t].codes, T[t].func && (T[t].tag = "mi");
+ })(),
+ t.Augment({
+ AM: {
+ Init: function () {
+ if (
+ ((o = t.config.displaystyle),
+ (u = t.config.decimal || t.config.decimalsign),
+ !t.config.fixphi)
+ )
+ for (var n = 0, a = T.length; n < a; n++)
+ "phi" === T[n].input && (T[n].output = "\u03c6"),
+ "varphi" === T[n].input &&
+ ((T[n].output = "\u03d5"), (n = a));
+ var s;
+ (s = (e = MathJax.ElementJax.mml).mbase.prototype.Init),
+ e.mbase.Augment({
+ firstChild: null,
+ lastChild: null,
+ nodeValue: null,
+ nextSibling: null,
+ Init: function () {
+ var t = s.apply(this, arguments) || this;
+ return (t.childNodes = t.data), (t.nodeName = t.type), t;
+ },
+ appendChild: function (t) {
+ t.parent && t.parent.removeChild(t);
+ var e = arguments;
+ t.isa(i) &&
+ ((e = t.childNodes),
+ (t.data = t.childNodes = []),
+ (t.firstChild = t.lastChild = null));
+ for (var n = 0, a = e.length; n < a; n++)
+ (t = e[n]),
+ this.lastChild && (this.lastChild.nextSibling = t),
+ this.firstChild || (this.firstChild = t),
+ this.Append(t),
+ (this.lastChild = t);
+ return t;
+ },
+ removeChild: function (t) {
+ for (
+ var e = 0, i = this.childNodes.length;
+ e < i && this.childNodes[e] !== t;
+ e++
+ );
+ if (e !== i)
+ return (
+ this.childNodes.splice(e, 1),
+ t === this.firstChild &&
+ (this.firstChild = t.nextSibling),
+ t === this.lastChild &&
+ (this.childNodes.length
+ ? (this.lastChild =
+ this.childNodes[this.childNodes.length - 1])
+ : (this.lastChild = null)),
+ e &&
+ (this.childNodes[e - 1].nextSibling = t.nextSibling),
+ (t.nextSibling = t.parent = null),
+ t
+ );
+ },
+ replaceChild: function (t, e) {
+ for (
+ var i = 0, n = this.childNodes.length;
+ i < n && this.childNodes[i] !== e;
+ i++
+ );
+ return (
+ i
+ ? (this.childNodes[i - 1].nextSibling = t)
+ : (this.firstChild = t),
+ i >= n - 1 && (this.lastChild = t),
+ this.SetData(i, t),
+ (t.nextSibling = e.nextSibling),
+ (e.nextSibling = e.parent = null),
+ e
+ );
+ },
+ hasChildNodes: function (t) {
+ return this.childNodes.length > 0;
+ },
+ setAttribute: function (t, e) {
+ this[t] = e;
+ },
+ }),
+ A();
+ },
+ Augment: function (t) {
+ for (var e in t)
+ if (t.hasOwnProperty(e)) {
+ switch (e) {
+ case "displaystyle":
+ o = t[e];
+ break;
+ case "decimal":
+ decimal = t[e];
+ break;
+ case "parseMath":
+ H = t[e];
+ break;
+ case "parseExpr":
+ k = t[e];
+ break;
+ case "parseIexpr":
+ P = t[e];
+ break;
+ case "parseSexpr":
+ D = t[e];
+ break;
+ case "removeBrackets":
+ M = t[e];
+ break;
+ case "getSymbol":
+ L = t[e];
+ break;
+ case "position":
+ O = t[e];
+ break;
+ case "removeCharsAndBlanks":
+ R = t[e];
+ break;
+ case "createMmlNode":
+ m = t[e];
+ break;
+ case "createElementMathML":
+ d = t[e];
+ break;
+ case "createElementXHTML":
+ p = t[e];
+ break;
+ case "initSymbols":
+ A = t[e];
+ break;
+ case "refreshSymbols":
+ v = t[e];
+ break;
+ case "compareNames":
+ C = t[e];
+ }
+ this[e] = t[e];
+ }
+ },
+ parseMath: H,
+ parseExpr: k,
+ parseIexpr: P,
+ parseSexr: D,
+ removeBrackets: M,
+ getSymbol: L,
+ position: O,
+ removeCharsAndBlanks: R,
+ createMmlNode: m,
+ createElementMathML: d,
+ createElementXHTML: p,
+ initSymbols: A,
+ refreshSymbols: v,
+ compareNames: C,
+ createDocumentFragment: i,
+ document: n,
+ define: function (t, e) {
+ T.push({ input: t, tag: "mo", output: e, tex: null, ttype: y }),
+ v();
+ },
+ newcommand: function (t, e) {
+ T.push({ input: t, tag: "mo", output: e, tex: null, ttype: y }),
+ v();
+ },
+ newsymbol: function (t) {
+ T.push(t), v();
+ },
+ symbols: T,
+ names: N,
+ TOKEN: {
+ CONST: 0,
+ UNARY: 1,
+ BINARY: 2,
+ INFIX: 3,
+ LEFTBRACKET: 4,
+ RIGHTBRACKET: 5,
+ SPACE: 6,
+ UNDEROVER: 7,
+ DEFINITION: y,
+ LEFTRIGHT: 9,
+ TEXT: 10,
+ UNARYUNDEROVER: 15,
+ },
+ },
+ });
+ })(MathJax.InputJax.AsciiMath),
+ (i = MathJax.InputJax.AsciiMath).Augment({
+ sourceMenuTitle: ["AsciiMathInput", "AsciiMath Input"],
+ annotationEncoding: "text/x-asciimath",
+ prefilterHooks: MathJax.Callback.Hooks(!0),
+ postfilterHooks: MathJax.Callback.Hooks(!0),
+ Translate: function (t) {
+ var e,
+ i = MathJax.HTML.getScript(t),
+ a = { math: i, script: t },
+ s = this.prefilterHooks.Execute(a);
+ if (s) return s;
+ i = a.math;
+ try {
+ e = this.AM.parseMath(i);
+ } catch (t) {
+ if (!t.asciimathError) throw t;
+ e = this.formatError(t, i);
+ }
+ return (
+ (a.math = n(e)),
+ this.postfilterHooks.Execute(a),
+ this.postfilterHooks.Execute(a) || a.math
+ );
+ },
+ formatError: function (t, e, i) {
+ var a = t.message.replace(/\n.*/, "");
+ return (
+ MathJax.Hub.signal.Post(["AsciiMath Jax - parse error", a, e, i]),
+ n.Error(a)
+ );
+ },
+ Error: function (t) {
+ throw MathJax.Hub.Insert(Error(t), { asciimathError: !0 });
+ },
+ Startup: function () {
+ (n = MathJax.ElementJax.mml), this.AM.Init();
+ },
+ }),
+ i.loadComplete("jax.js");
+ },
+ function (t, e) {
+ var i, n, a;
+ (i = MathJax.ElementJax.mml),
+ (n = [
+ "texWithDelims",
+ "movesupsub",
+ "subsupOK",
+ "primes",
+ "movablelimits",
+ "scriptlevel",
+ "open",
+ "close",
+ "isError",
+ "multiline",
+ "variantForm",
+ "autoOP",
+ "fnOP",
+ ]),
+ (a = { texWithDelims: "withDelims" }),
+ i.mbase.Augment({
+ toMmlNode: function (t) {
+ var e = this.type;
+ "texatom" === e && (e = "TeXAtom");
+ var i = this.nodeMake(t, e);
+ return "texClass" in this && (i.texClass = this.texClass), i;
+ },
+ nodeMake: function (t, e) {
+ for (
+ var i = t.MML["TeXmathchoice" === e ? "mathchoice" : e](),
+ n =
+ this.data[0] && this.data[0].inferred && this.inferRow
+ ? this.data[0].data
+ : this.data,
+ a = 0,
+ s = n.length;
+ a < s;
+ a++
+ ) {
+ var r = n[a];
+ r && i.appendChild(r.toMmlNode(t));
+ }
+ return this.nodeAddAttributes(i), this.nodeAddProperties(i), i;
+ },
+ nodeAddAttributes: function (t) {
+ var e =
+ "mstyle" === this.type
+ ? i.math.prototype.defaults
+ : this.defaults,
+ n = this.attrNames || i.copyAttributeNames,
+ a = i.skipAttributes,
+ s = i.copyAttributes;
+ if (!this.attrNames) {
+ for (var r in e)
+ a[r] ||
+ s[r] ||
+ !e.hasOwnProperty(r) ||
+ (null != this[r] &&
+ this[r] !== e[r] &&
+ this.Get(r, null, 1) !== this[r] &&
+ t.attributes.set(r, this[r]));
+ this.class && t.attributes.set("class", this.class);
+ }
+ for (var o = 0, l = n.length; o < l; o++)
+ (1 !== s[n[o]] || e.hasOwnProperty(n[o])) &&
+ ((value = (this.attr || {})[n[o]]),
+ null == value && (value = this[n[o]]),
+ ("true" !== value && "false" !== value) ||
+ (value = "true" === value),
+ null != value && t.attributes.set(n[o], value));
+ },
+ nodeAddProperties: function (t) {
+ for (var e = 0, s = n.length; e < s; e++) {
+ var r = n[e];
+ null == this[r] ||
+ (null != this.defaults[r] && this.defaults[r] !== i.AUTO) ||
+ t.setProperty(a[r] || r, this[r]);
+ }
+ },
+ }),
+ i.chars.Augment({
+ toMmlNode: function (t) {
+ return t.MML.text().setText(this.data.join(""));
+ },
+ }),
+ i.entity.Augment({
+ toMmlNode: function (t) {
+ return t.MML.text().setText(this.toString());
+ },
+ }),
+ i.msubsup.Augment({
+ toMmlNode: function (t) {
+ var e =
+ null == this.data[this.sub]
+ ? "msup"
+ : null == this.data[this.sup]
+ ? "msub"
+ : "msubsup";
+ return this.nodeMake(t, e);
+ },
+ }),
+ i.munderover.Augment({
+ toMmlNode: function (t) {
+ var e =
+ null == this.data[this.under]
+ ? "mover"
+ : null == this.data[this.over]
+ ? "munder"
+ : "munderover";
+ return this.nodeMake(t, e);
+ },
+ }),
+ i.xml.Augment({
+ toMmlNode: function (t) {
+ return t.MML.xml(this.data);
+ },
+ });
+ },
+ function (t, e, i) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.MmlFactory = MathJax._.core.MmlTree.MmlFactory.MmlFactory);
+ },
+ function (t, e, i) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.APPEND = MathJax._.util.Options.APPEND),
+ (e.REMOVE = MathJax._.util.Options.REMOVE),
+ (e.Expandable = MathJax._.util.Options.Expandable),
+ (e.expandable = MathJax._.util.Options.expandable),
+ (e.makeArray = MathJax._.util.Options.makeArray),
+ (e.keys = MathJax._.util.Options.keys),
+ (e.copy = MathJax._.util.Options.copy),
+ (e.insert = MathJax._.util.Options.insert),
+ (e.defaultOptions = MathJax._.util.Options.defaultOptions),
+ (e.userOptions = MathJax._.util.Options.userOptions),
+ (e.selectOptions = MathJax._.util.Options.selectOptions),
+ (e.selectOptionsFromKeys = MathJax._.util.Options.selectOptionsFromKeys),
+ (e.separateOptions = MathJax._.util.Options.separateOptions);
+ },
+ function (t, e, i) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.AbstractFindMath = MathJax._.core.FindMath.AbstractFindMath);
+ },
+ function (t, e, i) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.sortLength = MathJax._.util.string.sortLength),
+ (e.quotePattern = MathJax._.util.string.quotePattern),
+ (e.unicodeChars = MathJax._.util.string.unicodeChars),
+ (e.isPercent = MathJax._.util.string.isPercent),
+ (e.split = MathJax._.util.string.split);
+ },
+ function (t, e, i) {
+ "use strict";
+ Object.defineProperty(e, "__esModule", { value: !0 }),
+ (e.protoItem = MathJax._.core.MathItem.protoItem),
+ (e.AbstractMathItem = MathJax._.core.MathItem.AbstractMathItem),
+ (e.STATE = MathJax._.core.MathItem.STATE),
+ (e.newState = MathJax._.core.MathItem.newState);
+ },
+ function (t, e, i) {
+ "use strict";
+ i.r(e);
+ var n = i(2),
+ a = i(0),
+ s = i(1);
+ Object(n.combineWithMathJax)({
+ _: { input: { asciimath_ts: a, asciimath: { FindAsciiMath: s } } },
+ }),
+ MathJax.startup &&
+ (MathJax.startup.registerConstructor("asciimath", a.AsciiMath),
+ MathJax.startup.useInput("asciimath"));
+ },
+]);
diff --git a/assets/bower_components/MathJax/es5/input/mml.js b/assets/bower_components/MathJax/es5/input/mml.js
new file mode 100644
index 0000000..fc60b15
--- /dev/null
+++ b/assets/bower_components/MathJax/es5/input/mml.js
@@ -0,0 +1,774 @@
+!(function (t) {
+ var e = {};
+ function r(o) {
+ if (e[o]) return e[o].exports;
+ var a = (e[o] = { i: o, l: !1, exports: {} });
+ return t[o].call(a.exports, a, a.exports, r), (a.l = !0), a.exports;
+ }
+ (r.m = t),
+ (r.c = e),
+ (r.d = function (t, e, o) {
+ r.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: o });
+ }),
+ (r.r = function (t) {
+ "undefined" != typeof Symbol &&
+ Symbol.toStringTag &&
+ Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }),
+ Object.defineProperty(t, "__esModule", { value: !0 });
+ }),
+ (r.t = function (t, e) {
+ if ((1 & e && (t = r(t)), 8 & e)) return t;
+ if (4 & e && "object" == typeof t && t && t.__esModule) return t;
+ var o = Object.create(null);
+ if (
+ (r.r(o),
+ Object.defineProperty(o, "default", { enumerable: !0, value: t }),
+ 2 & e && "string" != typeof t)
+ )
+ for (var a in t)
+ r.d(
+ o,
+ a,
+ function (e) {
+ return t[e];
+ }.bind(null, a),
+ );
+ return o;
+ }),
+ (r.n = function (t) {
+ var e =
+ t && t.__esModule
+ ? function () {
+ return t.default;
+ }
+ : function () {
+ return t;
+ };
+ return r.d(e, "a", e), e;
+ }),
+ (r.o = function (t, e) {
+ return Object.prototype.hasOwnProperty.call(t, e);
+ }),
+ (r.p = ""),
+ r((r.s = 10));
+})([
+ function (t, e, r) {
+ "use strict";
+ var o,
+ a =
+ (this && this.__extends) ||
+ ((o = function (t, e) {
+ return (o =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (t, e) {
+ t.__proto__ = e;
+ }) ||
+ function (t, e) {
+ for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]);
+ })(t, e);
+ }),
+ function (t, e) {
+ function r() {
+ this.constructor = t;
+ }
+ o(t, e),
+ (t.prototype =
+ null === e
+ ? Object.create(e)
+ : ((r.prototype = e.prototype), new r()));
+ }),
+ i =
+ (this && this.__read) ||
+ function (t, e) {
+ var r = "function" == typeof Symbol && t[Symbol.iterator];
+ if (!r) return t;
+ var o,
+ a,
+ i = r.call(t),
+ n = [];
+ try {
+ for (; (void 0 === e || e-- > 0) && !(o = i.next()).done; )
+ n.push(o.value);
+ } catch (t) {
+ a = { error: t };
+ } finally {
+ try {
+ o && !o.done && (r = i.return) && r.call(i);
+ } finally {
+ if (a) throw a.error;
+ }
+ }
+ return n;
+ };
+ Object.defineProperty(e, "__esModule", { value: !0 }), (e.MathML = void 0);
+ var n = r(5),
+ s = r(3),
+ l = r(6),
+ c = r(1),
+ u = r(2),
+ h = (function (t) {
+ function e(e) {
+ void 0 === e && (e = {});
+ var r = this,
+ o = i(
+ s.separateOptions(
+ e,
+ c.FindMathML.OPTIONS,
+ u.MathMLCompile.OPTIONS,
+ ),
+ 3,
+ ),
+ a = o[0],
+ n = o[1],
+ h = o[2];
+ return (
+ ((r = t.call(this, a) || this).findMathML =
+ r.options.FindMathML || new c.FindMathML(n)),
+ (r.mathml = r.options.MathMLCompile || new u.MathMLCompile(h)),
+ (r.mmlFilters = new l.FunctionList()),
+ r
+ );
+ }
+ return (
+ a(e, t),
+ (e.prototype.setAdaptor = function (e) {
+ t.prototype.setAdaptor.call(this, e),
+ (this.findMathML.adaptor = e),
+ (this.mathml.adaptor = e);
+ }),
+ (e.prototype.setMmlFactory = function (e) {
+ t.prototype.setMmlFactory.call(this, e),
+ this.mathml.setMmlFactory(e);
+ }),
+ Object.defineProperty(e.prototype, "processStrings", {
+ get: function () {
+ return !1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (e.prototype.compile = function (t, e) {
+ var r = t.start.node;
+ if (
+ !r ||
+ !t.end.node ||
+ this.options.forceReparse ||
+ "#text" === this.adaptor.kind(r)
+ ) {
+ var o = this.executeFilters(
+ this.preFilters,
+ t,
+ e,
+ t.math || "",
+ ),
+ a = this.checkForErrors(
+ this.adaptor.parse(o, "text/" + this.options.parseAs),
+ ),
+ i = this.adaptor.body(a);
+ 1 !== this.adaptor.childNodes(i).length &&
+ this.error("MathML must consist of a single element"),
+ (r = this.adaptor.remove(this.adaptor.firstChild(i))),
+ "math" !== this.adaptor.kind(r).replace(/^[a-z]+:/, "") &&
+ this.error(
+ "MathML must be formed by a