This is an automated email from the ASF dual-hosted git repository.
guanmingchiu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/mahout.git
The following commit(s) were added to refs/heads/main by this push:
new 8c2cbb210 Fix MathJax rendering by self-hosting to comply with CSP
(#890)
8c2cbb210 is described below
commit 8c2cbb210a0a0510ee41032737c2e02af320c0df
Author: Guan-Ming (Wesley) Chiu <[email protected]>
AuthorDate: Wed Jan 21 10:30:17 2026 +0800
Fix MathJax rendering by self-hosting to comply with CSP (#890)
---
website/_includes/head.html | 33 +++++++++------------
website/assets/vendor/mathjax/core.js | 1 +
website/assets/vendor/mathjax/input/asciimath.js | 1 +
website/assets/vendor/mathjax/input/mml.js | 1 +
.../assets/vendor/mathjax/input/mml/entities.js | 1 +
.../vendor/mathjax/input/mml/extensions/mml3.js | 1 +
.../mathjax/input/mml/extensions/mml3.sef.json | 1 +
website/assets/vendor/mathjax/input/tex-base.js | 1 +
website/assets/vendor/mathjax/input/tex-full.js | 34 ++++++++++++++++++++++
website/assets/vendor/mathjax/input/tex.js | 1 +
.../vendor/mathjax/input/tex/extensions/action.js | 1 +
.../mathjax/input/tex/extensions/all-packages.js | 34 ++++++++++++++++++++++
.../vendor/mathjax/input/tex/extensions/ams.js | 1 +
.../vendor/mathjax/input/tex/extensions/amscd.js | 1 +
.../mathjax/input/tex/extensions/autoload.js | 1 +
.../vendor/mathjax/input/tex/extensions/bbox.js | 1 +
.../mathjax/input/tex/extensions/boldsymbol.js | 1 +
.../vendor/mathjax/input/tex/extensions/braket.js | 1 +
.../mathjax/input/tex/extensions/bussproofs.js | 1 +
.../vendor/mathjax/input/tex/extensions/cancel.js | 1 +
.../vendor/mathjax/input/tex/extensions/cases.js | 1 +
.../mathjax/input/tex/extensions/centernot.js | 1 +
.../vendor/mathjax/input/tex/extensions/color.js | 1 +
.../mathjax/input/tex/extensions/colortbl.js | 1 +
.../vendor/mathjax/input/tex/extensions/colorv2.js | 1 +
.../mathjax/input/tex/extensions/configmacros.js | 1 +
.../vendor/mathjax/input/tex/extensions/empheq.js | 1 +
.../vendor/mathjax/input/tex/extensions/enclose.js | 1 +
.../mathjax/input/tex/extensions/extpfeil.js | 1 +
.../vendor/mathjax/input/tex/extensions/gensymb.js | 1 +
.../vendor/mathjax/input/tex/extensions/html.js | 1 +
.../mathjax/input/tex/extensions/mathtools.js | 1 +
.../vendor/mathjax/input/tex/extensions/mhchem.js | 34 ++++++++++++++++++++++
.../mathjax/input/tex/extensions/newcommand.js | 1 +
.../mathjax/input/tex/extensions/noerrors.js | 1 +
.../mathjax/input/tex/extensions/noundefined.js | 1 +
.../vendor/mathjax/input/tex/extensions/physics.js | 1 +
.../vendor/mathjax/input/tex/extensions/require.js | 1 +
.../mathjax/input/tex/extensions/setoptions.js | 1 +
.../mathjax/input/tex/extensions/tagformat.js | 1 +
.../mathjax/input/tex/extensions/textcomp.js | 1 +
.../mathjax/input/tex/extensions/textmacros.js | 1 +
.../vendor/mathjax/input/tex/extensions/unicode.js | 1 +
.../vendor/mathjax/input/tex/extensions/upgreek.js | 1 +
.../vendor/mathjax/input/tex/extensions/verb.js | 1 +
website/assets/vendor/mathjax/loader.js | 1 +
website/assets/vendor/mathjax/startup.js | 1 +
website/assets/vendor/mathjax/tex-chtml.js | 1 +
48 files changed, 159 insertions(+), 20 deletions(-)
diff --git a/website/_includes/head.html b/website/_includes/head.html
index 8ac6d75ed..f0a0a792a 100644
--- a/website/_includes/head.html
+++ b/website/_includes/head.html
@@ -24,26 +24,19 @@
<link rel="canonical" href="{{ page.url | replace:'index.html','' |
absolute_url }}">
<link rel="alternate" type="application/rss+xml" title="{{ site.title |
escape }}" href="{{'/feed.xml' | relative_url }}">
- <script type="text/x-mathjax-config">
- MathJax.Hub.Config({
- "HTML-CSS": {
- availableFonts: ["TeX"],
+ <!-- MathJax 3 Configuration (self-hosted to comply with CSP) -->
+ <script>
+ MathJax = {
+ tex: {
+ inlineMath: [['$', '$'], ['\\(', '\\)']],
+ displayMath: [['$$', '$$'], ['\\[', '\\]']],
+ processEscapes: true,
+ tags: 'ams'
},
- tex2jax: {
- inlineMath: [['$','$'],["\\(","\\)"]],
- displayMath: [['$$','$$'],['\\[','\\]']]
- },
- TeX: {
- extensions: ["AMSmath.js", "AMSsymbols.js", "color.js"],
- equationNumbers: {
- autoNumber: "AMS"
- }
- },
- showProcessingMessages: false,
- messageStyle: "none",
- imageFont: null,
- "AssistiveMML": { disabled: true }
- });
+ options: {
+ skipHtmlTags: ['script', 'noscript', 'style', 'textarea', 'pre']
+ }
+ };
</script>
- <script type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS_HTML"></script>
+ <script type="text/javascript" src="/assets/vendor/mathjax/tex-chtml.js"
async></script>
</head>
diff --git a/website/assets/vendor/mathjax/core.js
b/website/assets/vendor/mathjax/core.js
new file mode 100644
index 000000000..6c027343e
--- /dev/null
+++ b/website/assets/vendor/mathjax/core.js
@@ -0,0 +1 @@
+!function(){"use strict";var
t,e,r,n,o,i,a,s,l,u,c,p,f,h,d,y,O,M,E,v,m,b,g,L,N,R,T,S,A,C,_,x,I,w,P,j,D,B,k,X,H,W,F,q,J,z,G,V,U,K,$,Y,Z,Q,tt,et,rt,nt,ot,it,at,st,lt,ut,ct,pt,ft,ht,dt,yt,Ot,Mt,Et,vt,mt,bt,gt,Lt,Nt={444:function(t,e,r){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)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])},n(t,e)},function(t,e){if("functio
[...]
diff --git a/website/assets/vendor/mathjax/input/asciimath.js
b/website/assets/vendor/mathjax/input/asciimath.js
new file mode 100644
index 000000000..27a34067c
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/asciimath.js
@@ -0,0 +1 @@
+!function(){var t={306:function(t,e){"use strict";e.q=void
0,e.q="3.2.2"},884: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)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},n(t,e)},function(t,e){if("function"!=typeof
e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a
constructor or null");function i(){this [...]
diff --git a/website/assets/vendor/mathjax/input/mml.js
b/website/assets/vendor/mathjax/input/mml.js
new file mode 100644
index 000000000..94b59a937
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/mml.js
@@ -0,0 +1 @@
+!function(){"use strict";var t,e,r,a,o,i={306:function(t,e){e.q=void
0,e.q="3.2.2"},236:function(t,e,r){var
a,o=this&&this.__extends||(a=function(t,e){return
a=Object.setPrototypeOf||{__proto__:[]}instanceof
Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in
e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])},a(t,e)},function(t,e){if("function"!=typeof
e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a
constructor or null");function r(){this.co [...]
diff --git a/website/assets/vendor/mathjax/input/mml/entities.js
b/website/assets/vendor/mathjax/input/mml/entities.js
new file mode 100644
index 000000000..48944d0af
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/mml/entities.js
@@ -0,0 +1 @@
+!function(){"use strict";var e={170:function(e,r,t){var
n=this&&this.__createBinding||(Object.create?function(e,r,t,n){void
0===n&&(n=t);var o=Object.getOwnPropertyDescriptor(r,t);o&&!("get"in
o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return
r[t]}}),Object.defineProperty(e,n,o)}:function(e,r,t,n){void
0===n&&(n=t),e[n]=r[t]}),o=this&&this.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:functi
[...]
diff --git a/website/assets/vendor/mathjax/input/mml/extensions/mml3.js
b/website/assets/vendor/mathjax/input/mml/extensions/mml3.js
new file mode 100644
index 000000000..c7609f1c0
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/mml/extensions/mml3.js
@@ -0,0 +1 @@
+(function(){"use strict";var __webpack_modules__={667:function(e,t){t.q=void
0,t.q="3.2.2"},63:function(__unused_webpack_module,exports){function
createTransform(){var
nodeRequire=eval("require"),dirname=eval("__dirname");try{nodeRequire.resolve("saxon-js")}catch(e){throw
Error("Saxon-js not found. Run the command:\n npm install saxon-js\nand
try again.")}var
Saxon=nodeRequire("saxon-js"),path=nodeRequire("path"),fs=nodeRequire("fs"),xsltFile=path.resolve(dirname,"mml3.sef.json"),xsl
[...]
diff --git a/website/assets/vendor/mathjax/input/mml/extensions/mml3.sef.json
b/website/assets/vendor/mathjax/input/mml/extensions/mml3.sef.json
new file mode 100644
index 000000000..238399e1e
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/mml/extensions/mml3.sef.json
@@ -0,0 +1 @@
+{"N":"package","version":"10","packageVersion":"1","saxonVersion":"Saxon-JS
2.3","target":"JS","targetVersion":"2","name":"TOP-LEVEL","relocatable":"true","buildDateTime":"2022-02-18T15:46:36.585-05:00","ns":"xml=~
xsl=~ m=http://www.w3.org/1998/Math/MathML
c=http://exslt.org/common","C":[{"N":"co","id":"0","binds":"0 3 2
1","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","prec":"","C":[{"N":"templateRule","rank":"0","prec":"0","seq":"52","ns":"xml=~
xsl=~ m=http://www.w3.org/ [...]
diff --git a/website/assets/vendor/mathjax/input/tex-base.js
b/website/assets/vendor/mathjax/input/tex-base.js
new file mode 100644
index 000000000..fdfae8e06
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex-base.js
@@ -0,0 +1 @@
+!function(){"use strict";var t={306:function(t,e){e.q=void
0,e.q="3.2.2"},205:function(t,e,r){var
n,i=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)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])},n(t,e)},function(t,e){if("function"!=typeof
e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a
constructor or null");function r(){this.constructor= [...]
diff --git a/website/assets/vendor/mathjax/input/tex-full.js
b/website/assets/vendor/mathjax/input/tex-full.js
new file mode 100644
index 000000000..5636c345a
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex-full.js
@@ -0,0 +1,34 @@
+!function(){"use strict";var t={7306:function(t,e){e.q=void
0,e.q="3.2.2"},7205:function(t,e,r){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)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])},n(t,e)},function(t,e){if("function"!=typeof
e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a
constructor or null");function r(){this.constructo [...]
+/*!
+ *************************************************************************
+ *
+ * mhchemParser.ts
+ * 4.1.1
+ *
+ * Parser for the \ce command and \pu command for MathJax and Co.
+ *
+ * mhchem's \ce is a tool for writing beautiful chemical equations easily.
+ * mhchem's \pu is a tool for writing physical units easily.
+ *
+ * ----------------------------------------------------------------------
+ *
+ * Copyright (c) 2015-2021 Martin Hensel
+ *
+ * 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.
+ *
+ * ----------------------------------------------------------------------
+ *
+ * https://github.com/mhchem/mhchemParser
+ *
+ */
+Object.defineProperty(e,"__esModule",{value:!0}),e.mhchemParser=void 0;var
r=function(){function t(){}return t.toTex=function(t,e){return
a.go(o.go(t,e),"tex"!==e)},t}();function n(t){var e,r,n={};for(e in t)for(r in
t[e]){var o=r.split("|");t[e][r].stateArray=o;for(var
a=0;a<o.length;a++)n[o[a]]=[]}for(e in t)for(r in
t[e])for(o=t[e][r].stateArray||[],a=0;a<o.length;a++){var
i=t[e][r];i.action_=[].concat(i.action_);for(var
s=0;s<i.action_.length;s++)"string"==typeof i.action_[s]&&(i.act [...]
diff --git a/website/assets/vendor/mathjax/input/tex.js
b/website/assets/vendor/mathjax/input/tex.js
new file mode 100644
index 000000000..62e056caa
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex.js
@@ -0,0 +1 @@
+!function(){"use strict";var t={7306:function(t,e){e.q=void
0,e.q="3.2.2"},7205:function(t,e,r){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 r in
e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])},n(t,e)},function(t,e){if("function"!=typeof
e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a
constructor or null");function r(){this.constructo [...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/action.js
b/website/assets/vendor/mathjax/input/tex/extensions/action.js
new file mode 100644
index 000000000..912b8f764
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/action.js
@@ -0,0 +1 @@
+!function(){"use strict";var t,a,e,o={667:function(t,a){a.q=void
0,a.q="3.2.2"},669:function(t,a,e){var
o=this&&this.__importDefault||function(t){return
t&&t.__esModule?t:{default:t}};Object.defineProperty(a,"__esModule",{value:!0}),a.ActionConfiguration=a.ActionMethods=void
0;var
n=e(251),i=o(e(193)),r=e(871),u=o(e(360));a.ActionMethods={},a.ActionMethods.Macro=u.default.Macro,a.ActionMethods.Toggle=function(t,a){for(var
e,o=[];"\\endtoggle"!==(e=t.GetArgument(a));)o.push(new i.default( [...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/all-packages.js
b/website/assets/vendor/mathjax/input/tex/extensions/all-packages.js
new file mode 100644
index 000000000..20144586f
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/all-packages.js
@@ -0,0 +1,34 @@
+!function(){"use strict";var t={8667:function(t,e){e.q=void
0,e.q="3.2.2"},7375:function(t,e,r){Object.defineProperty(e,"__esModule",{value:!0}),e.AllPackages=void
0,r(2379),r(669),r(2577),r(6769),r(2133),r(2986),r(8243),r(6333),r(5774),r(7530),r(2286),r(2224),r(7888),r(4558),r(6359),r(2079),r(4272),r(3646),r(2082),r(1738),r(205),r(7078),r(2048),r(5634),r(1999),r(2996),r(1596),r(5941),r(1845),r(3762),r(7927),r(5376),r(8768),"undefined"!=typeof
MathJax&&MathJax.loader&&MathJax.loader.preL [...]
+/*!
+ *************************************************************************
+ *
+ * mhchemParser.ts
+ * 4.1.1
+ *
+ * Parser for the \ce command and \pu command for MathJax and Co.
+ *
+ * mhchem's \ce is a tool for writing beautiful chemical equations easily.
+ * mhchem's \pu is a tool for writing physical units easily.
+ *
+ * ----------------------------------------------------------------------
+ *
+ * Copyright (c) 2015-2021 Martin Hensel
+ *
+ * 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.
+ *
+ * ----------------------------------------------------------------------
+ *
+ * https://github.com/mhchem/mhchemParser
+ *
+ */
+Object.defineProperty(e,"__esModule",{value:!0}),e.mhchemParser=void 0;var
r=function(){function t(){}return t.toTex=function(t,e){return
o.go(a.go(t,e),"tex"!==e)},t}();function n(t){var e,r,n={};for(e in t)for(r in
t[e]){var a=r.split("|");t[e][r].stateArray=a;for(var
o=0;o<a.length;o++)n[a[o]]=[]}for(e in t)for(r in
t[e])for(a=t[e][r].stateArray||[],o=0;o<a.length;o++){var
i=t[e][r];i.action_=[].concat(i.action_);for(var
s=0;s<i.action_.length;s++)"string"==typeof i.action_[s]&&(i.act [...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/ams.js
b/website/assets/vendor/mathjax/input/tex/extensions/ams.js
new file mode 100644
index 000000000..90e5e6ea5
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/ams.js
@@ -0,0 +1 @@
+!function(){"use strict";var t,e,a,r,n,i={667:function(t,e){e.q=void
0,e.q="3.2.2"},577:function(t,e,a){var
r,n,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 a in
e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a])},r(t,e)},function(t,e){if("function"!=typeof
e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a
constructor or null");function a(){this. [...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/amscd.js
b/website/assets/vendor/mathjax/input/tex/extensions/amscd.js
new file mode 100644
index 000000000..7b2809cb2
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/amscd.js
@@ -0,0 +1 @@
+!function(){"use strict";var e,t,a,r,o={667:function(e,t){t.q=void
0,t.q="3.2.2"},769:function(e,t,a){Object.defineProperty(t,"__esModule",{value:!0}),t.AmsCdConfiguration=void
0;var
r=a(251);a(704),t.AmsCdConfiguration=r.Configuration.create("amscd",{handler:{character:["amscd_special"],macro:["amscd_macros"],environment:["amscd_environment"]},options:{amscd:{colspace:"5pt",rowspace:"5pt",harrowsize:"2.75em",varrowsize:"1.75em",hideHorizontalLabels:!1}}})},704:function(e,t,a){var
r=this [...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/autoload.js
b/website/assets/vendor/mathjax/input/tex/extensions/autoload.js
new file mode 100644
index 000000000..cc1161c94
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/autoload.js
@@ -0,0 +1 @@
+!function(){"use strict";var t,e,a,o={667:function(t,e){e.q=void
0,e.q="3.2.2"},275:function(t,e,a){var o=this&&this.__read||function(t,e){var
a="function"==typeof Symbol&&t[Symbol.iterator];if(!a)return t;var
o,r,n=a.call(t),i=[];try{for(;(void 0===e||e--
>0)&&!(o=n.next()).done;)i.push(o.value)}catch(t){r={error:t}}finally{try{o&&!o.done&&(a=n.return)&&a.call(n)}finally{if(r)throw
r.error}}return i},r=this&&this.__values||function(t){var e="function"==typeof
Symbol&&Symbol.iterator,a=e [...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/bbox.js
b/website/assets/vendor/mathjax/input/tex/extensions/bbox.js
new file mode 100644
index 000000000..4159c3140
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/bbox.js
@@ -0,0 +1 @@
+!function(){"use strict";var t,a,e,o={667:function(t,a){a.q=void
0,a.q="3.2.2"},133:function(t,a,e){var
o=this&&this.__importDefault||function(t){return
t&&t.__esModule?t:{default:t}};Object.defineProperty(a,"__esModule",{value:!0}),a.BboxConfiguration=a.BboxMethods=void
0;var
n=e(251),i=e(871),r=o(e(402));a.BboxMethods={},a.BboxMethods.BBox=function(t,a){for(var
e,o,n,i=t.GetBrackets(a,""),l=t.ParseArg(a),x=i.split(/,/),M=0,s=x.length;M<s;M++){var
c=x[M].trim(),d=c.match(/^(\.\d+|\d+(\. [...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/boldsymbol.js
b/website/assets/vendor/mathjax/input/tex/extensions/boldsymbol.js
new file mode 100644
index 000000000..849a5a4e8
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/boldsymbol.js
@@ -0,0 +1 @@
+!function(){"use strict";var t,a,o,e={667:function(t,a){a.q=void
0,a.q="3.2.2"},986:function(t,a,o){var e=this&&this.__values||function(t){var
a="function"==typeof Symbol&&Symbol.iterator,o=a&&t[a],e=0;if(o)return
o.call(t);if(t&&"number"==typeof t.length)return{next:function(){return
t&&e>=t.length&&(t=void 0),{value:t&&t[e++],done:!t}}};throw new
TypeError(a?"Object is not iterable.":"Symbol.iterator is not
defined.")},n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:
[...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/braket.js
b/website/assets/vendor/mathjax/input/tex/extensions/braket.js
new file mode 100644
index 000000000..f6d99309c
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/braket.js
@@ -0,0 +1 @@
+!function(){"use strict";var t,e,a,r,o,n={667:function(t,e){e.q=void
0,e.q="3.2.2"},243:function(t,e,a){var
r;Object.defineProperty(e,"__esModule",{value:!0}),e.BraketConfiguration=void
0;var
o=a(251),n=a(519);a(299),e.BraketConfiguration=o.Configuration.create("braket",{handler:{character:["Braket-characters"],macro:["Braket-macros"]},items:(r={},r[n.BraketItem.prototype.kind]=n.BraketItem,r)})},519:function(t,e,a){var
r,o=this&&this.__extends||(r=function(t,e){return r=Object.setProtot [...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/bussproofs.js
b/website/assets/vendor/mathjax/input/tex/extensions/bussproofs.js
new file mode 100644
index 000000000..95f10a8c8
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/bussproofs.js
@@ -0,0 +1 @@
+!function(){"use strict";var e,t,r,o,n,a,i={667:function(e,t){t.q=void
0,t.q="3.2.2"},333:function(e,t,r){var
o;Object.defineProperty(t,"__esModule",{value:!0}),t.BussproofsConfiguration=void
0;var
n=r(251),a=r(854),i=r(378);r(116),t.BussproofsConfiguration=n.Configuration.create("bussproofs",{handler:{macro:["Bussproofs-macros"],environment:["Bussproofs-environments"]},items:(o={},o[a.ProofTreeItem.prototype.kind]=a.ProofTreeItem,o),preprocessors:[[i.saveDocument,1]],postprocessors:[[i.
[...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/cancel.js
b/website/assets/vendor/mathjax/input/tex/extensions/cancel.js
new file mode 100644
index 000000000..b57c31397
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/cancel.js
@@ -0,0 +1 @@
+!function(){"use strict";var t,e,a,n={667:function(t,e){e.q=void
0,e.q="3.2.2"},774:function(t,e,a){var
n=this&&this.__importDefault||function(t){return
t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.CancelConfiguration=e.CancelMethods=void
0;var
o=a(251),i=a(108),r=a(871),c=n(a(398)),l=a(975);e.CancelMethods={},e.CancelMethods.Cancel=function(t,e,a){var
n=t.GetBrackets(e,""),o=t.ParseArg(e),i=c.default.keyvalOptions(n,l.ENCLOSE_OPTIONS);i.notation=a,t.
[...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/cases.js
b/website/assets/vendor/mathjax/input/tex/extensions/cases.js
new file mode 100644
index 000000000..cc0d23d8a
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/cases.js
@@ -0,0 +1 @@
+!function(){"use strict";var t,e,a,n={667:function(t,e){e.q=void
0,e.q="3.2.2"},530:function(t,e,a){var
n,s,r=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 a in
e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a])},n(t,e)},function(t,e){if("function"!=typeof
e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a
constructor or null");function a(){this.cons [...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/centernot.js
b/website/assets/vendor/mathjax/input/tex/extensions/centernot.js
new file mode 100644
index 000000000..14a982f75
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/centernot.js
@@ -0,0 +1 @@
+!function(){"use strict";var e,t,a,n={667:function(e,t){t.q=void
0,t.q="3.2.2"},286:function(e,t,a){var n=this&&this.__values||function(e){var
t="function"==typeof Symbol&&Symbol.iterator,a=t&&e[t],n=0;if(a)return
a.call(e);if(e&&"number"==typeof e.length)return{next:function(){return
e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new
TypeError(t?"Object is not iterable.":"Symbol.iterator is not
defined.")},r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:
[...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/color.js
b/website/assets/vendor/mathjax/input/tex/extensions/color.js
new file mode 100644
index 000000000..74d111db8
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/color.js
@@ -0,0 +1 @@
+!function(){"use strict";var e,o,t,r,a,n,l={667:function(e,o){o.q=void
0,o.q="3.2.2"},224:function(e,o,t){Object.defineProperty(o,"__esModule",{value:!0}),o.ColorConfiguration=void
0;var r=t(871),a=t(251),n=t(162),l=t(358);new
r.CommandMap("color",{color:"Color",textcolor:"TextColor",definecolor:"DefineColor",colorbox:"ColorBox",fcolorbox:"FColorBox"},n.ColorMethods);o.ColorConfiguration=a.Configuration.create("color",{handler:{macro:["color"]},options:{color:{padding:"5px",borderWidth:"
[...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/colortbl.js
b/website/assets/vendor/mathjax/input/tex/extensions/colortbl.js
new file mode 100644
index 000000000..764b278bc
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/colortbl.js
@@ -0,0 +1 @@
+!function(){"use strict";var t,e,a,o={667:function(t,e){e.q=void
0,e.q="3.2.2"},558:function(t,e,a){var
o,n=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 a in
e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a])},o(t,e)},function(t,e){if("function"!=typeof
e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a
constructor or null");function a(){this.constr [...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/colorv2.js
b/website/assets/vendor/mathjax/input/tex/extensions/colorv2.js
new file mode 100644
index 000000000..96c6ddd0e
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/colorv2.js
@@ -0,0 +1 @@
+!function(){"use strict";var o,a,t,e={667:function(o,a){a.q=void
0,a.q="3.2.2"},888:function(o,a,t){Object.defineProperty(a,"__esModule",{value:!0}),a.ColorConfiguration=a.ColorV2Methods=void
0;var e=t(871),n=t(251);a.ColorV2Methods={Color:function(o,a){var
t=o.GetArgument(a),e=o.stack.env.color;o.stack.env.color=t;var
n=o.ParseArg(a);e?o.stack.env.color=e:delete o.stack.env.color;var
r=o.create("node","mstyle",[n],{mathcolor:t});o.Push(r)}},new
e.CommandMap("colorv2",{color:"Color"},a.C [...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/configmacros.js
b/website/assets/vendor/mathjax/input/tex/extensions/configmacros.js
new file mode 100644
index 000000000..38cb3bf54
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/configmacros.js
@@ -0,0 +1 @@
+!function(){"use strict";var t,a,e,n={667:function(t,a){a.q=void
0,a.q="3.2.2"},359:function(t,a,e){var n,o=this&&this.__values||function(t){var
a="function"==typeof Symbol&&Symbol.iterator,e=a&&t[a],n=0;if(e)return
e.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(a?"Object is not iterable.":"Symbol.iterator is not
defined.")},i=this&&this.__importDefault||function(t){return t&&t.__esModule?
[...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/empheq.js
b/website/assets/vendor/mathjax/input/tex/extensions/empheq.js
new file mode 100644
index 000000000..b626175a1
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/empheq.js
@@ -0,0 +1 @@
+!function(){"use strict";var e,t,a,n,r={667:function(e,t){t.q=void
0,t.q="3.2.2"},79:function(e,t,a){var
n,r,i=this&&this.__extends||(n=function(e,t){return
n=Object.setPrototypeOf||{__proto__:[]}instanceof
Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in
t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])},n(e,t)},function(e,t){if("function"!=typeof
t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a
constructor or null");function a(){this.con [...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/enclose.js
b/website/assets/vendor/mathjax/input/tex/extensions/enclose.js
new file mode 100644
index 000000000..e42f1eb05
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/enclose.js
@@ -0,0 +1 @@
+!function(){"use strict";var a,t,e,o={667:function(a,t){t.q=void
0,t.q="3.2.2"},272:function(a,t,e){var
o=this&&this.__importDefault||function(a){return
a&&a.__esModule?a:{default:a}};Object.defineProperty(t,"__esModule",{value:!0}),t.EncloseConfiguration=t.EncloseMethods=t.ENCLOSE_OPTIONS=void
0;var
n=e(251),r=e(871),i=o(e(398));t.ENCLOSE_OPTIONS={"data-arrowhead":1,color:1,mathcolor:1,background:1,mathbackground:1,"data-padding":1,"data-thickness":1},t.EncloseMethods={},t.EncloseMethod
[...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/extpfeil.js
b/website/assets/vendor/mathjax/input/tex/extensions/extpfeil.js
new file mode 100644
index 000000000..9f2125237
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/extpfeil.js
@@ -0,0 +1 @@
+!function(){"use strict";var t,e,a,o={667:function(t,e){e.q=void
0,e.q="3.2.2"},646:function(t,e,a){var
o=this&&this.__importDefault||function(t){return
t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.ExtpfeilConfiguration=e.ExtpfeilMethods=void
0;var
n=a(251),r=a(871),i=a(939),u=o(a(892)),x=a(417),p=o(a(402));e.ExtpfeilMethods={},e.ExtpfeilMethods.xArrow=i.AmsMethods.xArrow,e.ExtpfeilMethods.NewExtArrow=function(t,a){var
o=t.GetArgument(a),n=t.GetArgume [...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/gensymb.js
b/website/assets/vendor/mathjax/input/tex/extensions/gensymb.js
new file mode 100644
index 000000000..854376fdb
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/gensymb.js
@@ -0,0 +1 @@
+!function(){"use strict";var a,t,n,e={667:function(a,t){t.q=void
0,t.q="3.2.2"},82:function(a,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.GensymbConfiguration=void
0;var
e=n(251),o=n(108);new(n(871).CharacterMap)("gensymb-symbols",(function(a,t){var
n=t.attributes||{};n.mathvariant=o.TexConstant.Variant.NORMAL,n.class="MathML-Unit";var
e=a.create("token","mi",n,t.char);a.Push(e)}),{ohm:"\u2126",degree:"\xb0",celsius:"\u2103",perthousand:"\u2030",micro:"\xb5"}),t.GensymbConfig
[...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/html.js
b/website/assets/vendor/mathjax/input/tex/extensions/html.js
new file mode 100644
index 000000000..f9bcbc73c
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/html.js
@@ -0,0 +1 @@
+!function(){"use strict";var t,e,a,n,r={667:function(t,e){e.q=void
0,e.q="3.2.2"},738:function(t,e,a){var
n=this&&this.__importDefault||function(t){return
t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.HtmlConfiguration=void
0;var r=a(251),o=a(871),i=n(a(248));new
o.CommandMap("html_macros",{href:"Href",class:"Class",style:"Style",cssId:"Id"},i.default),e.HtmlConfiguration=r.Configuration.create("html",{handler:{macro:["html_macros"]}})},248:function(t,
[...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/mathtools.js
b/website/assets/vendor/mathjax/input/tex/extensions/mathtools.js
new file mode 100644
index 000000000..2cea34b2c
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/mathtools.js
@@ -0,0 +1 @@
+!function(){"use strict";var t,e,a,r,o,n,l,i={667:function(t,e){e.q=void
0,e.q="3.2.2"},205:function(t,e,a){var r,o=this&&this.__values||function(t){var
e="function"==typeof Symbol&&Symbol.iterator,a=e&&t[e],r=0;if(a)return
a.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.")},n=this&&this.__importDefault||function(t){return t&&t.__e [...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/mhchem.js
b/website/assets/vendor/mathjax/input/tex/extensions/mhchem.js
new file mode 100644
index 000000000..259acb37a
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/mhchem.js
@@ -0,0 +1,34 @@
+!function(){"use strict";var t,e,o,n={667:function(t,e){e.q=void
0,e.q="3.2.2"},78:function(t,e,o){var
n=this&&this.__importDefault||function(t){return
t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.MhchemConfiguration=void
0;var
a=o(251),r=o(871),i=n(o(402)),p=n(o(360)),c=o(939),u=o(652),s={};s.Macro=p.default.Macro,s.xArrow=c.AmsMethods.xArrow,s.Machine=function(t,e,o){var
n,a=t.GetArgument(e);try{n=u.mhchemParser.toTex(a,o)}catch(t){throw new
i.defau [...]
+/*!
+ *************************************************************************
+ *
+ * mhchemParser.ts
+ * 4.1.1
+ *
+ * Parser for the \ce command and \pu command for MathJax and Co.
+ *
+ * mhchem's \ce is a tool for writing beautiful chemical equations easily.
+ * mhchem's \pu is a tool for writing physical units easily.
+ *
+ * ----------------------------------------------------------------------
+ *
+ * Copyright (c) 2015-2021 Martin Hensel
+ *
+ * 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.
+ *
+ * ----------------------------------------------------------------------
+ *
+ * https://github.com/mhchem/mhchemParser
+ *
+ */
+Object.defineProperty(e,"__esModule",{value:!0}),e.mhchemParser=void 0;var
o=function(){function t(){}return t.toTex=function(t,e){return
r.go(a.go(t,e),"tex"!==e)},t}();function n(t){var e,o,n={};for(e in t)for(o in
t[e]){var a=o.split("|");t[e][o].stateArray=a;for(var
r=0;r<a.length;r++)n[a[r]]=[]}for(e in t)for(o in
t[e])for(a=t[e][o].stateArray||[],r=0;r<a.length;r++){var
i=t[e][o];i.action_=[].concat(i.action_);for(var
p=0;p<i.action_.length;p++)"string"==typeof i.action_[p]&&(i.act [...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/newcommand.js
b/website/assets/vendor/mathjax/input/tex/extensions/newcommand.js
new file mode 100644
index 000000000..34945583e
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/newcommand.js
@@ -0,0 +1 @@
+!function(){"use strict";var e,t,n,a,r,i,o={667:function(e,t){t.q=void
0,t.q="3.2.2"},48:function(e,t,n){var
a,r=this&&this.__createBinding||(Object.create?function(e,t,n,a){void
0===a&&(a=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in
r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return
t[n]}}),Object.defineProperty(e,a,r)}:function(e,t,n,a){void
0===a&&(a=n),e[a]=t[n]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defi
[...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/noerrors.js
b/website/assets/vendor/mathjax/input/tex/extensions/noerrors.js
new file mode 100644
index 000000000..f13654f2c
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/noerrors.js
@@ -0,0 +1 @@
+!function(){"use strict";var o,n,r,t={667:function(o,n){n.q=void
0,n.q="3.2.2"},634:function(o,n,r){Object.defineProperty(n,"__esModule",{value:!0}),n.NoErrorsConfiguration=void
0;var
t=r(251);n.NoErrorsConfiguration=t.Configuration.create("noerrors",{nodes:{error:function(o,n,r,t){var
e=o.create("token","mtext",{},t.replace(/\n/g," "));return
o.create("node","merror",[e],{"data-mjx-error":n,title:n})}}})},955:function(o,n){MathJax._.components.global.isObject,MathJax._.components.global
[...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/noundefined.js
b/website/assets/vendor/mathjax/input/tex/extensions/noundefined.js
new file mode 100644
index 000000000..c3d39cc91
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/noundefined.js
@@ -0,0 +1 @@
+!function(){"use strict";var n,o,e,t={667:function(n,o){o.q=void
0,o.q="3.2.2"},999:function(n,o,e){var t=this&&this.__values||function(n){var
o="function"==typeof Symbol&&Symbol.iterator,e=o&&n[o],t=0;if(e)return
e.call(n);if(n&&"number"==typeof n.length)return{next:function(){return
n&&t>=n.length&&(n=void 0),{value:n&&n[t++],done:!n}}};throw new
TypeError(o?"Object is not iterable.":"Symbol.iterator is not
defined.")};Object.defineProperty(o,"__esModule",{value:!0}),o.NoUndefinedConfi
[...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/physics.js
b/website/assets/vendor/mathjax/input/tex/extensions/physics.js
new file mode 100644
index 000000000..68350609d
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/physics.js
@@ -0,0 +1 @@
+!function(){"use strict";var t,e,a,r,n,o={667:function(t,e){e.q=void
0,e.q="3.2.2"},996:function(t,e,a){var
r;Object.defineProperty(e,"__esModule",{value:!0}),e.PhysicsConfiguration=void
0;var
n=a(251),o=a(855);a(842),e.PhysicsConfiguration=n.Configuration.create("physics",{handler:{macro:["Physics-automatic-bracing-macros","Physics-vector-macros","Physics-vector-mo","Physics-vector-mi","Physics-derivative-macros","Physics-expressions-macros","Physics-quick-quad-macros","Physics-bra-ket-
[...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/require.js
b/website/assets/vendor/mathjax/input/tex/extensions/require.js
new file mode 100644
index 000000000..2f822d34e
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/require.js
@@ -0,0 +1 @@
+!function(){"use strict";var e,t,a,o={667:function(e,t){t.q=void
0,t.q="3.2.2"},778:function(e,t,a){var o=this&&this.__values||function(e){var
t="function"==typeof Symbol&&Symbol.iterator,a=t&&e[t],o=0;if(a)return
a.call(e);if(e&&"number"==typeof e.length)return{next:function(){return
e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new
TypeError(t?"Object is not iterable.":"Symbol.iterator is not
defined.")},r=this&&this.__read||function(e,t){var a="function"==typeof Symbol&
[...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/setoptions.js
b/website/assets/vendor/mathjax/input/tex/extensions/setoptions.js
new file mode 100644
index 000000000..3a0a68789
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/setoptions.js
@@ -0,0 +1 @@
+!function(){"use strict";var t,e,a,o={667:function(t,e){e.q=void
0,e.q="3.2.2"},596:function(t,e,a){var o=this&&this.__values||function(t){var
e="function"==typeof Symbol&&Symbol.iterator,a=e&&t[e],o=0;if(a)return
a.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.")},n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:
[...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/tagformat.js
b/website/assets/vendor/mathjax/input/tex/extensions/tagformat.js
new file mode 100644
index 000000000..205455c4e
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/tagformat.js
@@ -0,0 +1 @@
+!function(){"use strict";var t,o,n,a={667:function(t,o){o.q=void
0,o.q="3.2.2"},941:function(t,o,n){var
a,r=this&&this.__extends||(a=function(t,o){return
a=Object.setPrototypeOf||{__proto__:[]}instanceof
Array&&function(t,o){t.__proto__=o}||function(t,o){for(var n in
o)Object.prototype.hasOwnProperty.call(o,n)&&(t[n]=o[n])},a(t,o)},function(t,o){if("function"!=typeof
o&&null!==o)throw new TypeError("Class extends value "+String(o)+" is not a
constructor or null");function n(){this.constr [...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/textcomp.js
b/website/assets/vendor/mathjax/input/tex/extensions/textcomp.js
new file mode 100644
index 000000000..f6422a2c3
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/textcomp.js
@@ -0,0 +1 @@
+!function(){"use strict";var t,e,n,r={667:function(t,e){e.q=void
0,e.q="3.2.2"},845:function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0}),e.TextcompConfiguration=void
0;var
r=n(251);n(832),e.TextcompConfiguration=r.Configuration.create("textcomp",{handler:{macro:["textcomp-macros"]}})},832:function(t,e,n){var
r=this&&this.__importDefault||function(t){return
t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var
a=n(871),s=n(108),o=n(245),x=r(n(398) [...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/textmacros.js
b/website/assets/vendor/mathjax/input/tex/extensions/textmacros.js
new file mode 100644
index 000000000..47e77be7c
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/textmacros.js
@@ -0,0 +1 @@
+!function(){"use strict";var t,e,a,n,o,r={667:function(t,e){e.q=void
0,e.q="3.2.2"},762:function(t,e,a){var
n,o=this&&this.__importDefault||function(t){return
t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.TextMacrosConfiguration=e.TextBaseConfiguration=void
0;var r=a(251),s=o(a(278)),i=a(680),c=a(935),l=a(787),u=a(807);function
p(t,e,a,n){var o=t.configuration.packageData.get("textmacros");return t
instanceof l.TextParser||(o.texParser=t),[new l.TextPa [...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/unicode.js
b/website/assets/vendor/mathjax/input/tex/extensions/unicode.js
new file mode 100644
index 000000000..ec3d8f55b
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/unicode.js
@@ -0,0 +1 @@
+!function(){"use strict";var t,e,a,n={667:function(t,e){e.q=void
0,e.q="3.2.2"},376:function(t,e,a){var
n=this&&this.__importDefault||function(t){return
t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.UnicodeConfiguration=e.UnicodeMethods=void
0;var
o=a(251),i=n(a(402)),r=a(871),u=n(a(398)),l=n(a(748)),c=a(992);e.UnicodeMethods={};var
p={};e.UnicodeMethods.Unicode=function(t,e){var
a=t.GetBrackets(e),n=null,o=null;a&&(a.replace(/ /g,"").match(/^(\d+(\.\d [...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/upgreek.js
b/website/assets/vendor/mathjax/input/tex/extensions/upgreek.js
new file mode 100644
index 000000000..fdd3f5975
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/upgreek.js
@@ -0,0 +1 @@
+!function(){"use strict";var a,t,e,p={667:function(a,t){t.q=void
0,t.q="3.2.2"},927:function(a,t,e){Object.defineProperty(t,"__esModule",{value:!0}),t.UpgreekConfiguration=void
0;var p=e(251),n=e(871),o=e(108);new
n.CharacterMap("upgreek",(function(a,t){var
e=t.attributes||{};e.mathvariant=o.TexConstant.Variant.NORMAL;var
p=a.create("token","mi",e,t.char);a.Push(p)}),{upalpha:"\u03b1",upbeta:"\u03b2",upgamma:"\u03b3",updelta:"\u03b4",upepsilon:"\u03f5",upzeta:"\u03b6",upeta:"\u03b7",upth
[...]
diff --git a/website/assets/vendor/mathjax/input/tex/extensions/verb.js
b/website/assets/vendor/mathjax/input/tex/extensions/verb.js
new file mode 100644
index 000000000..c6962b1fd
--- /dev/null
+++ b/website/assets/vendor/mathjax/input/tex/extensions/verb.js
@@ -0,0 +1 @@
+!function(){"use strict";var t,e,a,n={667:function(t,e){e.q=void
0,e.q="3.2.2"},768:function(t,e,a){var
n=this&&this.__importDefault||function(t){return
t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.VerbConfiguration=e.VerbMethods=void
0;var
o=a(251),r=a(108),i=a(871),u=n(a(402));e.VerbMethods={},e.VerbMethods.Verb=function(t,e){var
a=t.GetNext(),n=++t.i;if(""===a)throw new u.default("MissingArgFor","Missing
argument for %1",e);for(;t.i<t.string.length [...]
diff --git a/website/assets/vendor/mathjax/loader.js
b/website/assets/vendor/mathjax/loader.js
new file mode 100644
index 000000000..8f8f61ae1
--- /dev/null
+++ b/website/assets/vendor/mathjax/loader.js
@@ -0,0 +1 @@
+!function(){"use strict";var e={515:function(e,t,r){var
n=this&&this.__values||function(e){var t="function"==typeof
Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return
r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return
e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new
TypeError(t?"Object is not iterable.":"Symbol.iterator is not
defined.")};Object.defineProperty(t,"__esModule",{value:!0}),t.MathJax=t.combineWithMathJax=t.combineDefaults=t.combineConfig=t
[...]
diff --git a/website/assets/vendor/mathjax/startup.js
b/website/assets/vendor/mathjax/startup.js
new file mode 100644
index 000000000..c3d8881af
--- /dev/null
+++ b/website/assets/vendor/mathjax/startup.js
@@ -0,0 +1 @@
+!function(){"use strict";var t={515:function(t,e,r){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.MathJax=e.combineWithMathJax=e.combineDefaults=e.combineConfig=e
[...]
diff --git a/website/assets/vendor/mathjax/tex-chtml.js
b/website/assets/vendor/mathjax/tex-chtml.js
new file mode 100644
index 000000000..d9f16e29f
--- /dev/null
+++ b/website/assets/vendor/mathjax/tex-chtml.js
@@ -0,0 +1 @@
+(function(){"use strict";var __webpack_modules__={351:function(t,e,r){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)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])},n(t,e)},function(t,e){if("function"!=typeof
e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a
constructor or null");function r(){this.constructor=t}n(t,e),t.prototype=nul
[...]